字节面试官(手写Promise.all和Promise.race方法)

【字节面试官(手写Promise.all和Promise.race方法)】在工作中promise使用的场景还是很多的,偶尔也会用到其中的all和race方法,前端面试的时候也经常问到,下面就来实现以下。
一、All方法的实现

function myALL(arr){ return new Promise((resolve,reject)=>{ const result = [] let count = 0 let len = arr.length for(let i = 0; i < len; i++){ Promise.resolve(arr[i]).then(res=>{ result[i] = res count++ if(count === len){ resolve(result) } }).catch(err=>{ reject(err) }) } }) }

二、Race方法的实现
function myRace(arr){ return new Promise((resolve,reject)=>{ const result = [] let len = arr.length for(let i = 0; i < len; i++){ Promise.resolve(arr[i]).then(res=>{ resolve(res) }).catch(err=>{ reject(err) }) } }) }

    推荐阅读