二、Promise.race 的使用
我们先看 MDN 的定义:Promise.race(iterable) 方法返回一个 promise,一旦迭代器中的某个 promise 解决或拒绝,返回的 promise 就会解决或拒绝。
看了是不是一脸懵逼,啥意思,哈哈~~我们再看官方给的例子:
Both resolve, but promise2 is faster ,从这里可以看出端倪。顾名思义,Promse.race 就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。
我们看一下使用 Promise.race – setTimeout 的示例
race 服务比较重要,比如多台服务,想要稳定返回,并且还要快,让他们去竞赛,谁快就用谁。race 的使用场景就是,多台服务器部署了同样的服务端代码,假如我要获取一个商品列表接口,我可以在 race 中写上所有服务器中的查询商品列表的接口地址,哪个服务器响应快,就从哪个服务器拿数据。