定义:
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