Promise.all = (promises)=>{
let i=0, len=promises.length,result=[];
return new Promise((resolve, reject)=>{
for(let p of promises){
Promise.resolve(p).then(data=>{
i++;
result[i] = data;
if(i===len){
return resolve(result);
}
},err=>{
return reject(err);
})
}
})
}