race和any
一、关系
any是对race的补充:尽可能等一个fulfilled的结果
二、区别
场景
Promise.race()
Promise.any()
全fulfilled
onResolve,返回最早的fulfilled
onResolve,返回最早的fulfilled
fulfilled+rejected
不定,返回最早的rejected/fulfilled
onResolve,返回最早的fulfilled
全rejected
onRejected,返回最早的rejected
onRejected,返回所有的rejected
三、详解
1、Promise.race([promise, promise2, ...])
并发,返回最早完成的那个任务的结果;
始终返回最早的那个任务:如果fulfiled则执行onResolve,如果rejected则执行onReject
输出:
2、Promise.any([promise, promise2, ...])
尽可能返回fulfiled的任务的结果
只要有一个fulfiled的任务,则执行onResolve;只有全都rejected时才执行onReject
输出:
四、手写
1、Promise.race
2、Promise.any
Last updated