Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 完成所有ajax查询后执行函数_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 完成所有ajax查询后执行函数

Javascript 完成所有ajax查询后执行函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,在我的代码中,我必须完成几个ajax调用,然后在所有操作完成后调用一个更新函数。我尝试使用ajaxStop,但问题是,如果循环没有进行任何ajax调用,则该方法不会被调用 看起来是这样的: for (var key in data) { if (...) { $.ajax({ ... }); } } $(document).ajaxStop(function () { updateAll(); // I need to call this function even if

在我的代码中,我必须完成几个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之后如何调用函数(即使根本没有查询)


谢谢

将返回的承诺添加到数组中,然后使用
$。当
确定它们何时全部完成

var xhr = [];

for (var key in data) {
  if (...) {
      var request = $.ajax({ ... });

      xhr.push(request);
  }
}

$.when.apply($, xhr).done(updateAll);