Creo Engine 中文站

浅析Promise三兄弟:Promise.all、Promise.race、Promise.allSettled 的理解和使用场景

发布日期:2025-01-03 17:13    点击次数:89

二、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 中写上所有服务器中的查询商品列表的接口地址,哪个服务器响应快,就从哪个服务器拿数据。

热点资讯
相关资讯


Powered by Creo Engine 中文站 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024