如何判断两个异步均执行结束,再同步执行第三个函数

RT

 $.ajax({
  url: "test1.html",
  data:data1,
});
 $.ajax({
  url: "test2.html",
  data:data2,
});

function foo(){
 console.log('2个ajax请求均结束'); 
}

如何在两个ajax事件异步执行且均执行完毕后再执行foo()

在node.js中如果想发送两个请求,获取到两个请求的数据后再进行一系列操作,应该用什么办法?

阅读 13.9k
5 个回答

Promise方法:
如果需要两个依次执行,可以用then连接,如果对顺序无要求,可以放入一个数组中,用Promise.all执行。

回调方法:
如果需要依次执行,可以把后一个异步写入前一个异步的回调函数里,再把第三个函数写入后一个异步的回调函数里,也就形成了所谓的'callback hell'...
如果需要同时执行,可以写一个计数器,如count,初始值为0。在两个异步的回调函数里都执行count++,再判断如果count为2,即均执行完毕,就执行第三个函数。

$.when($.ajax({
  url: "test1.html",
  data:data1,
}),$.ajax({
  url: "test2.html",
  data:data2,
})).done(function(){
    console.log('2个ajax请求均结束'); 
}).fail(function(){
    console.log('2个ajax有请求失败');
})

可以用JQ的$.when().then();

$.when($.ajax({
  url: "test1.html",
  data:data1,
}, $.ajax({
  url: "test2.html",
  data:data2,
})).then(function(data1,data2){
      console.log('2个ajax请求均结束');
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题