0
点赞
收藏
分享

微信扫一扫

Promise.all和Promise.race区别,和使用场景

彭维盛 2022-06-13 阅读 71
一、Pomise.all的使用

常见使用场景 : 多个异步结果合并到一起

Promise.all可以将多个Promise实例包装成一个新的Promise实例。用于将多个Promise实例,包装成一个新的Promise实例。

1.它接受一个数组作为参数。

2.数组可以是Promise对象,也可以是其它值,只有Promise会等待状态改变。

3.当所有的子Promise都完成,该Promise完成,返回值是全部值的数组。

4.如果有任何一个失败,该Promise失败,返回值是第一个失败的子Promise的结果。

 

 

二、Pomise.race的使用

类似于Promise.all() ,区别在于 它有任意一个返回成功后,就算完成,但是 进程不会立即停止

常见使用场景:把异步操作和定时器放到一起,如果定时器先触发,认为超时,告知用户

 

 

​Promise.race​​​在第一个​​promise​​​对象变为​​Fulfilled​​​之后,并不会取消其他​​promise​​​对象的执行。只是只有先完成的​​Promise​​​才会被​​Promise.race后面的then​​​处理。其它的​​Promise还是在执行​​​的,只不过是​​不会进入​​​到​​promise.race​​​后面的​​then​​内。

​Promise.all​​​和​​Promise.race​​​都是有使用场景的。
有些时候我们做一个操作可能得​​​同时​​​需要不同的接口返回的数据,这时我们就可以使用​​Promise.all​​​;
有时我们比如说有好几个服务器的好几个接口都提供​​​同样的服务​​​,我们不知道哪个接口更快,就可以使用​​Promise.race​​,哪个接口的数据先回来我们就用哪个接口的数据。


举报

相关推荐

0 条评论