微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 等到jquery ajax请求列表完成?

参见英文答案 > 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 举报,一经查实,本站将立刻删除。

相关推荐