【发布时间】:2017-12-30 16:27:45
【问题描述】:
我正在使用一个返回评论对象的 api,cmets 可以有孩子也是评论对象。
我正在尝试使用递归检索整个评论线程,但它不起作用,只要评论没有孩子,函数就会提前结束并且返回的结果不包含整个评论线程。
如何更改函数,以便在检查所有 cmets 没有孩子后进行解析。
api返回的评论对象示例
{
"id": 16020433,
"kids": [
16021684,
16021721,
16021659
],
"title": "Why isn't literally every train automated?",
"type": "story"
}
这是我的代码:
function getCommentsWrapper(id) {
let comments = [];
return new Promise((resolve, reject) => {
function recurseComments(id) {
let url = `https://hacker-news.firebaseio.com/v0/item/${id}.json`;
let comment = {};
fetch(url)
.then(response => response.json())
.then(cmt => {
comment = cmt
comments.push(comment);
if (comment.kids) {
comment.kids.forEach(id => recurseComments(id));
} else {
resolve(comments)
}
})
}
recurseComments(id);
})
// call the function with
getCommentsWrapper("16033496")
.then(result => console.log(result));
【问题讨论】:
标签: javascript promise