javascript - 如何判断两个异步均执行结束,再同步执行第三个函数
大家讲道理
大家讲道理 2017-04-11 12:27:19
[JavaScript讨论组]

RT

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

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

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

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(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请求均结束');
})
高洛峰

jQuery的话,用这个:deferred.promise()

PHPz

then().then()

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号