簡體   English   中英

循環調用多個AJAX調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM