我正试图编写一个函数,其中包括一个for
循环内的Promise,但循环只在迭代执行,并且承诺永远不会解决。For循环内没有完成Promise
我的代码如下所示:
function appendPosts() {
return functionThatReturnsAPromise()
.then(result => {
return new Promise((resolve, reject) => {
var list = [];
result.forEach(item => {
//do stuff to item
list.push(item);
});
resolve(list);
});
})
.then(list => {
return new Promise((resolve, reject) => {
//This loop only runs once, even when list has contains many items
for (var i = 0; i < list.length; i++) {
document.querySelector("someSelector").appendChild(list[i]);
}
resolve();
});
});
}
显然,我做错了什么。有任何想法吗?
谢谢你的时间。 - 丹尼尔
'.then()'中'Promise'构造函数的目的是什么?为什么迭代'result'只是为了将'item'推送到数组? – guest271314
我不认为当列表长度更长时,for循环只能运行一次。再次检查迭代和list.length。 – xDreamCoding
也许第一次迭代发生异常?使用['catch'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch)。 –