在我的代码中,我必须进行几次ajax调用,然后在完成所有操作后调用更新函数。我试图使用ajaxStop
,但问题是如果循环没有进行任何ajax调用,则该方法不会被调用...
看起来像这样:
for (var key in data) {
if (...) {
$.ajax({ ... });
}
}
$(document).ajaxStop(function () {
updateAll(); // I need to call this function even if there was no ajax call
});
任何人都知道如果在完成前一个循环的所有ajax后调用函数(即使根本没有查询)?
由于
答案 0 :(得分:1)
将返回的promises添加到数组中,然后使用$.when
确定它们何时完成
var xhr = [];
for (var key in data) {
if (...) {
var request = $.ajax({ ... });
xhr.push(request);
}
}
$.when.apply($, xhr).done(updateAll);