等到jquery ajax请求列表完成?

这个问题几乎是一样的: 等到所有jQuery Ajax请求都完成了?

但我的问题是:

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

var events = []; for(var i = 0; i < 10; ++i) { events.push($.ajax({...})); } $.when(events).done(function() { // do something when all requests are done. }); 

正如相关问题所述,$ jqXHR方法按顺序采用了一些jqXHR对象 ,但在这里我想要一个列表

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

怎么会这样? Plz的帮助。

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

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