定义:
if(!Promise.last){
Promise.last=function(prs){
return new Promise(function(resolve,reject){
let i=0;
prs.forEach(function(pr){
Promise.resolve(pr)
.then(function(pr){
i++;
console.log("i=%s,result=%s",i,pr);
if(i==prs.length){
resolve(pr);
}
});
})
});
}
}
定义几个promise
p2=function(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve(2);
},5000);
});
};
p3=function(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve(3);
},10000);
});
};
p5=function(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve(5);
},11000);
});
};
p1=function(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve(1);
},1000);
});
};
用promise.last执行
Promise.last([p2(),p3(),p5(),p1()]).then(function(result){
console.log('last result:%s',JSON.stringify(result));
});
最后一个返回:
last result:5