等到jquery ajax请求列表完成?

时间:2014-06-05 02:52:25

标签: javascript jquery ajax

这个问题几乎相同:Wait until all jQuery Ajax requests are done?

但我的问题很明显:

我正在做很多ajax请求,并将它们保存在一个数组中:

var events = [];

for(var i = 0; i < 10; ++i) {
    events.push($.ajax({...}));
}

$.when(events).done(function() {
   // do something when all requests are done.
});

正如相关问题所述,$ .when方法按顺序某个jqXHR对象,但在这里我希望列出一些

我在http://api.jquery.com/jQuery.when/#jQuery-when-deferreds中阅读了这些文档,但该方法似乎不支持这种情况(将jqXHR列表传递给$.when函数)

怎么可能? Plz帮助。

1 个答案:

答案 0 :(得分:5)

你需要将promises作为参数列表(如$.when(promise1, promise2, promise3))传递给$.when(),而不是数组,所以请使用Function.apply()

$.when.apply($, events).then(function() {
   // do something when all requests are done.
});