Promise.race
Promise.all([p1, p2,p3]) 和 Promise.race([p1, p2,p3]) 都是很好用方法,他们之间的区别简单说是:
他们都接收数组参数,p1 p2 都是Promise 实例
- const p = Promise.all([p1, p2,p3])
- p1 p2 p3只有都是成功resolve, 才能走 then
- p1 p2 p3 之间有一个是 reject,最终状态就会变成reject 走 catch
- const p = Promise.race([p1, p2,p3])
- p1 p2 p3 互为竞争关系,之间有一个先返回状态,p的状态就会跟着改变
实例需求背景: 接口返回有时候过慢,假如3秒内接口返回那就走正常流程,如果超过3秒,接口还没返回则做告知处理
最简单的处理方法就是用 Promise.race
Promise.race([
this.