javascript - ajax 同时多个请求,各个请求返回结果汇合再进行后续操作,该如何实现?
黄舟
黄舟 2017-04-11 11:24:59
[JavaScript讨论组]

想要实现ajax同时调用多个接口,每个接口返回结果保存到一个集合中,然后再进行后续操作该如何实现?一个应用场景应该像这个样子的:接口A返回用户ID,接口B返回用户性别,然后根据用户ID和性别进行后续查询,接口A和接口B是相互独立的

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
怪我咯

使用promise,在jquery的用法如下:使用when方法

$.when([$.ajax('/request1'), $.ajax('/request2'), $.ajax('/request3')]).done(function (data) {
     console.log('第一个ajax请求',data[0]);
     console.log('第二个ajax请求',data[1]);
     console.log('第三个ajax请求',data[2]);
});
PHP中文网

可以用 Promise 之類的實現,但靠別人寫好的庫來實現比較省事
caolan/async(https://github.com/caolan/async)

jsFiddle

這邊用到 async.parallel 來達到同時請求並等待返回,再進行下一步,async 還有其他很好用的方法

Async中文文檔

天蓬老师

通常有这种需求的时候,想想是否可以使用一次异步请求去实现。
如果真的是特殊情况,那么就在第一个异步成功后,在回调方法内执行第二个异步,以此类推。
但这样子,不便于代码的后期维护。

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

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