promise.any不能使用的情况下怎么实现同样的效果

当Promise.any()不被支持时,解决并发请求取最早返回数据的策略。通过改造Promise.all(),达到类似Promise.any()的效果,确保只要有任一请求成功即返回结果。
摘要由CSDN通过智能技术生成

实现发起多个请求:取其中返回最快的数据

背景:npm获取包信息,获取源:私服1,私服2,官方npm源
目的:向npm源获取到包信息
要求:向所有npm源发送请求,只要有包信息返回,就使用那条

实现方法:
通过百度,发现了Promise有个新的方法:Promise.any()

Promise.any() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise
。如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败的 promise
和AggregateError类型的实例,它是 Error
的一个子类,用于把单一的错误集合在一起。本质上,这个方法和Promise.all()是相反的

这不是刚好就是我要的结果吗!可是生活就是处处是磨难

注意! Promise.any() 方法依然是实验性的,尚未被所有的浏览器完全支持。它当前处于 TC39 第四阶段草案(Stage 4)

然后疯狂百度,疯狂尝试安装插件,试图让项目可以兼容到这个方法,始终报错"promise.any is not a function"
无奈只能另想他法了:一顿www.baidu.com下,发现了一位老兄提供了一个非常神奇的操作,改造promise.all
首先我们先了解下promise.all()

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值