promise.all
Promise.all = function(arr){
let arrLen = arr.length;
let arrRes = [];
let proI = 0;
return new Promise((resolve,reject)=>{
for(let i=0;i<arr.length;i++){
Promise.resolve(arr[i]).then((data)=>{
arrRes[i] = data;
proI++;
if(proI == arrLen){
resolve(arrRes)
}
}).catch((err)=>{
reject(err)
})
}
})
}
promise.race
Promise.race = function(arr){
return new Promise((resolve,reject)=>{
for(let i=0;i<arr.length;i++){
Promise.resolve(arr[i]).then((data)=>{
resolve(data)
}).catch((err)=>{
reject(err)
})
}
})
}