利用Promise实现Promise.all


let pall = function(...args){ let Res = [] let Err = [] return new Promise((resolve,reject)=>{ for(let i=0;i<args.length;i++){ args[i].then(res=>{ Res.push(res) if(Res.length == args.length){ resolve(Res) } }).catch(err=>{ Err.push(err) reject(Err) }) } }) } let p1 = new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve("p1") },1000) }) let p2 = new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve("p2") },500) }) pall(p1,p2).then(res=>{ console.log(res) }).catch(err=>console.log(err))
原文地址:https://www.cnblogs.com/styleFeng/p/14469850.html