我正試圖編寫一個函數,其中包括一個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)。 –