我有一个$ .each周期,会触发一个AJAX请求。
我要做的是等所有AJAX请求完成。我不在乎这些AJAX请求的结果,问题是我必须确保它们已完成。
我认为可以使用$ .Deferred完成此操作,但是即使阅读了JQuery文档,我也无法弄清楚该怎么做。
答案 0 :(得分:2)
要等待所有AJAX请求完成,可以将调用返回的jqXHR
对象存储在数组中。然后,您可以将该数组应用于$.when
,以便在所有请求完成后运行。试试这个:
var requests = yourDataStructure.map(function() {
return $.ajax({
// setup...
});
});
$.when.apply($, requests).done(function() {
console.log('All requests finished, do something here...');
});
答案 1 :(得分:0)
$.when(request1(), request2(), ... ,requestn()).done(function(res1, res2, ... , resn){
// what to do when I get all the response / when it finished
});
我曾经在堆栈溢出时找到这个答案,如果可以找到链接,我会将其放在下面。
注意:别给我投票,我只是想提供帮助,我只是从堆栈溢出的某个地方提到了这一点。找到链接后,我将其放置:)