我使用promises
處理任務的列表:Javascript - 如何正確處理循環承諾?
這是一個代碼示例:
var array = ["aaa", "bbbb", "cccc", "dddd", "eeee"];
var result = [];
var p = Promise.resolve({
then: function(onFulfill, onReject) {
array.forEach(function(x){
// http request with x and make sure this request ends before a new one if fired
// put http resolte in array : result.push(httpRespose);
});
//when done, onFulfill(result)
}
});
p.then(
function(v) {
console.log(v); // "fulfilled!"
}, function(e) {
console.log(e); // not called
});
我希望能夠製作和使用來自陣列的每個元素的HTTP請求,然後把結果另一個數組,當完成時返回新的數組。我也想知道是否有可能確保http結果以相同的順序添加(這不是很重要)。
有人可以幫忙嗎?
創建承諾的數組,並用'Promise.all'解決這些問題:https://developer.mozilla.org/en-US/docs/Web/JavaScript/參考/ Global_Objects/Promise/all。 –
你可以將所有的promise集合到一個數組中,並使用[Promise.all](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all)來觸發他們都已完成。 –
'//使用x的http請求並且確保這個請求在一個新的請求結束之前結束如果是這樣的話,你不需要promise.all –