但是我的问题是不对的:
我正在执行许多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对象,但是在这里我要 列出它们的清单 。
jqXHR
我在http://api.jquery.com/jQuery.when/#jQuery-when- deferreds中阅读了文档,但是该方法似乎不支持这种情况(将jqXHRto 列表传递给$.when函数)
$.when
怎么会这样?请帮助。
您需要将promise作为参数列表(如$.when(promise1, promise2, promise3))传递给$ .when(),而不是作为数组传递,因此请使用Function.apply()。
$.when(promise1, promise2, promise3)
$.when.apply($, events).then(function() { // do something when all requests are done. });