promise.All
let p=function(time) {
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(time)
},time)
})
}
let p1=p(1000);
let p2=p(2000)
let promiseAll=function (promise) {
let promises=Array.from(promise)
return new Promise((resolve,reject)=>{
if(promises.length===0){
resolve([])
}else{
let res=[];
for (let i = 0; i < promises.length; i++) {
Promise.resolve(promises[i]).then(data=>{
res[i]=data;
if(i==promises.length-1){
resolve(res)
}
},err=>{
reject(err)
return
});
}
}
})
}
promiseAll([p1,p2]).then(res=>{
console.log(res)
})
let promiseRace=function(promise) {
let promises=Array.from(promise);
return new Promise((resolve,reject)=>{
for (let i = 0; i < promises.length; i++) {
Promise.resolve(promises[i]).then(res=>{
resolve(res) / /谁先完成或失败谁先出去
},err=>reject(err))
}
})
}
promiseRace([p1,p2]).then(res=>{
console.log(res)
})