ajax 同时多个请求,各个请求返回结果汇合再进行后续操作,该如何实现?

发布于 2022-09-03 00:57:34 字数 122 浏览 15 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

瑾兮 2022-09-10 00:57:34

使用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]);
});
我是有多爱你 2022-09-10 00:57:34

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

jsFiddle

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

Async中文文檔

甜嗑 2022-09-10 00:57:34

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

小猫一只 2022-09-10 00:57:34

好吧,我提供一种low的方法:发起多个异步加载,在每个加载完成事件里面写object["对应事件的标识"]=true, 500毫秒循环到40次的样子,中途检测到object对象里面每项值都为true,说明都加载完了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文