[英]Callback of multiple AJAX calls in a loop
我有以下代碼:
var results = [];
for(var i = 0; i < 4; i++){
$.ajax(... results.push(response));
}
我想知道這4個Ajax調用何時完成,然后對結果數組做些什么,我該怎么做?
無需預先創建results
數組,而是創建一個promise數組( $.ajax
調用計為promise),然后可以在該數組上使用Promise.all
。 一旦所有呼叫解決, Promise.all
將解析為四個響應的數組:
const promises = [];
for (let i = 0; i < 4; i++) {
promises.push($.ajax(....));
}
Promise.all(promises).then((results) => {
// do stuff with results
})
.catch((err) => {
// handle errors
});
您可以引入一個計數器,該計數器在每個AJAX請求返回時遞增。 當計數器等於4時,您可以對結果數組進行操作。
(我也在用偽代碼進行響應,因為我是在手機上鍵入的。)
var counter = 0;
var results = [];
for (var i = 0; i < 4; i++) {
$.ajax(..., function(resp) {
counter++;
results.push(resp);
if (counter == 4) {
// do stuff
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.