Jquery 在$内等待AJAX请求,每个请求使用$延迟
我有一个$。每个周期触发一个AJAX请求。Jquery 在$内等待AJAX请求,每个请求使用$延迟,jquery,ajax,deferred,Jquery,Ajax,Deferred,我有一个$。每个周期触发一个AJAX请求。 我要做的是等待所有AJAX请求完成。我不在乎这些AJAX请求的结果,问题是我必须确保它们已经完成。 我认为这可以使用$.Deferred实现,但我不知道如何实现,即使在阅读了JQuery文档之后 要等待所有AJAX请求完成,可以将调用返回的jqXHR对象存储在数组中。然后,您可以将该数组应用于$。当所有请求完成时将运行。试试这个: var requests = yourDataStructure.map(function() { return $.
我要做的是等待所有AJAX请求完成。我不在乎这些AJAX请求的结果,问题是我必须确保它们已经完成。
我认为这可以使用$.Deferred实现,但我不知道如何实现,即使在阅读了JQuery文档之后
要等待所有AJAX请求完成,可以将调用返回的
jqXHR
对象存储在数组中。然后,您可以将该数组应用于$。当所有请求完成时将运行。试试这个:
var requests = yourDataStructure.map(function() {
return $.ajax({
// setup...
});
});
$.when.apply($, requests).done(function() {
console.log('All requests finished, do something here...');
});
我曾经在堆栈溢出上找到这个答案,如果我能找到链接,我会把链接放在下面
注:不要给我投票,我只是想帮你&我只是从堆栈溢出的某个地方引用了这个。当我找到它时,我会放上链接:)这不是我想要的,因为我有一个foreach循环,我不知道需要多少requestX()函数。
$.when(request1(), request2(), ... ,requestn()).done(function(res1, res2, ... , resn){
// what to do when I get all the response / when it finished
});