等到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. });