聞きたいこと
バックエンドから下のような形式のコメントのデータを取得しようと思っています。
{ id: 1234, context: "コメント1", children: [ 1235, 1236, 1237 ] }
idはコメントを一意に特定するためのid, contextはコメントの内容、childrenにはそのコメントに対してのコメントのidが入ります。
ただ、特定のコメントに対してのコメントに対してのコメントも存在し、それらも取得したいと思っています。
(上の例だと、コメントID: 1234に対してのコメントである1235に対してのコメントもある)
一旦自力で下のように実装してみました。
JavaScript
1 2: 3 4const fetchComments = (comment) => { 5 if (comment.children) { 6 return fetchItems(comment.children).then((c) => { 7 return fetchComments(c); 8 }) 9 } 10}; 11 12const fetchItems = (comments) => { 13 return Promise.all(comments.map(comment => fetchItem(comment)) 14} 15 16const fetchItem = (comment) => { 17 // バックエンドと疎通して、comment 1件を取得する処理 18 return new Promise... 19} 20 21: 22const comment = 1234 23fetchComments(comment).then(res => console.log(res)); 24
最終的に fetchComments
を実行した際に、res
変数にすべて取得してきたコメント情報が配列のような形式で代入されていればいいのですが、undefinedになってしまいます。
あなたの回答
tips
プレビュー