欢迎加入站点基地设计开发交流群:30720409
详细内容
当前位置 首页 >> 技术文档 >> NodeJS >> 正文
Promise.first
发布日期:2021-06-07     点击:212     字体:[ ]

定义一个Promise.first,有成功则返回第一个,如果都失败,则返回定义的all reject

if(!Promise.first){

Promise.first=function(prs){

  return new Promise(function(resolve,reject){

          //循环所有Promise

          prs.forEach(function(pr){

               Promise.resolve(pr)

                      .then(resolve)

                      .catch(function(e){

                         console.log('it is err:%s',e);

                      })

          });

          Promise.resolve('all reject').then(reject);

     });

}

}


用法:
1.全是成功的情况,或者有某个reject

var p1=Promise.resolve(20);

var p2=Promise.resolve(30);

var p3=Promise.resolve(60);

Promise.first([p1,p2,p3]).then(function(result){

  console.log('result:%s',result);

})

.catch(function(e){

  console.log('e=%s',e);

});


输出:result:20


2.全是失败的情况

var p1=Promise.reject(20);

var p2=Promise.reject(30);

var p3=Promise.reject(60);


Promise.first([p1,p2,p3]).then(function(result){

  console.log('result:%s',result);

})

.catch(function(e){

  console.log('e=%s',e);

});

输出:e=all reject

用户评论
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号-1 可人软件设计