参见英文答案 > How do you work with an array of jQuery Deferreds? 4个
这个问题几乎相同: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的帮助.
解决方法:
你需要将promises作为参数列表(如$.when(promise1,promise2,promise3))传递给$.when(),而不是作为数组,所以使用Function.apply().
$.when.apply($, events).then(function() {
// do something when all requests are done.
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。