JS中同时发起多个网络请求,如何接收到最先返回就停止所有请求并返回该值?

2023-04-01 0 1,167

假设有三个网络请求 A、B 和 C,它们的返回值分别为 “A”、”B” 和 “C”,但由于网络延迟的原因,它们的返回顺序是不确定的。请使用 Promise.race() 实现一个函数,它在接收到任意一个请求的返回值后就停止所有请求并返回该值。

回答:

使用 Promise.race 这个API,把所有网络请求 Promisify 之后都放入到一个数组当中,传递给 Promise.race
当其中有任意一个请求返回后, Promise.race 就会返回该请求返回的 Promise 对象,再通过调用 .then() 方法就可以获取到返回结果了。

例如说:

function test() {
  Promise.race([
    fetch('https://api.example.com/A'), 
    fetch('https://api.example.com/B'), 
    fetch('https://api.example.com/C')
  ]).then(res => {
    console.log(res.result)
  });
}
JS中同时发起多个网络请求,如何接收到最先返回就停止所有请求并返回该值?
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 JS中同时发起多个网络请求,如何接收到最先返回就停止所有请求并返回该值? https://www.jkxiazai.com/1218.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务