在我的代码中,我必须进行多次 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 完成后调用一个函数(即使根本没有查询)?
谢谢
最佳答案
将返回的 promises 添加到数组中,然后使用 $.when
确定它们何时全部完成
var xhr = [];
for (var key in data) {
if (...) {
var request = $.ajax({ ... });
xhr.push(request);
}
}
$.when.apply($, xhr).done(updateAll);
关于javascript - 完成所有ajax查询后执行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751481/