繁体   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