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