다음과 같이 다시 작성된 제목: 재귀 비동기 함수는 값을 반환할 수 없습니다.
<p>mysql 쿼리를 실행하는 재귀적 비동기 함수를 만들고 있습니다. 제가 사용하고 있는 데이터베이스는 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">+----+------+--------- ----+------------+------------+---------+
| ID | 완료됨 |
+----+------------+------------+----------+- -------- ---+---------+
| 1 | 클린 아파트 | 0 |
| 2 | 화장실 청소 1 |
| 3 | 주방을 청소하다 1 |
| 4 | 샤워하기 2 |
| 5 | 화장실을 씻다 2 |
| 6 | 유리창 청소 1 |
| 7 | 깨끗한 수도꼭지 4 |
|8 |싱크대 청소 2022-03-24 00:47:33 |
| 9 | 쓰레기 버리기 1 | 2022-03-24 00:47:33 |
+----+------------+------------+----------+- -------- --+---------+</pre>
<p>이 데이터베이스를 배열에 저장하면 다음 함수를 실행할 수 있습니다. </p>
<pre class="brush:php;toolbar:false;">function comp(tasks, taskId) {
var task = task.find(task => task.id === taskId)
var children = task.filter(t => t.parentId === taskId)
task.children = children.map(child => comp(tasks, child.id));
작업 반환
}</pre>
<p> 하위 작업을 기본 작업에 반복적으로 중첩합니다. </p>
<p>문제는 제가 비동기 함수를 충분히 이해하지 못한다는 것입니다.</p>
<p>지금까지의 진행 상황은 다음과 같습니다.</p>
<pre class="brush:php;toolbar:false;">비동기 함수 comp(taskId) {
// SELECT * FROM 작업 WHERE id = taskId
var task = wait con.promise().query('select * from task where id = ' + taskId)
// SELECT * FROM 작업 WHERE parentId = taskId
var children = wait con.promise().query('select * from task where parentid = ' + taskId)
task[0][0].children = children[0].map(child => {
comp(child.id)
})
console.log(작업[0])
}</pre>
<p>그러나 이렇게 하면 정의되지 않은 하위 작업이 있는 작업이 반환됩니다.</p>
<pre class="brush:php;toolbar:false;">[
{
아이디: 1,
작업: '아파트 청소',
완료: 0,
부모 ID: null,
작성자: 1,
생성 날짜: 2022-03-23T23:47:33.000Z,
어린이: [ 정의되지 않음, 정의되지 않음 ]
}
]</pre>
<p>요컨대 제가 원하는 것은 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">{
아이디: 1,
작업: '아파트 청소',
완료: 0,
부모 ID: null,
작성자: 1,
생성 날짜: 2022-03-23T23:47:33.000Z,
어린이들: [
{
아이디: 2,
작업: '화장실 청소',
완료: 0,
부모 ID: 1,
작성자: 1,
생성 날짜: 2022-03-23T23:47:33.000Z,
어린이들: [
{
아이디: 4,
작업: '샤워 세척',
완료: 0,
부모 ID: 2,
작성자: 1,
생성 날짜: 2022-03-23T23:47:33.000Z,
어린이들: [ ... ]
},
{
아이디: 5,
작업: '화장실 세척',
완료: 0,
부모 ID: 2,
작성자: 1,
생성 날짜: 2022-03-23T23:47:33.000Z,
어린이들: [ ... ]
},
]
},
{
아이디: 3,
작업: '주방 청소',
완료: 0,
부모 ID: 1,
작성자: 1,
생성 날짜: 2022-03-23T23:47:33.000Z,
어린이들: [ ... ]
},
}</pre>
<p>제안사항이 있으신가요? </p>