我有这个虚拟代码
var Promise = require('bluebird')
function rej1(){
return new Promise.reject(new Error('rej1'));
}
function rej2() {
return new Promise.reject(new Error('rej2'));
}
function rej3() {
return new Promise.reject(new Error('rej3'));
}
Promise.all([rej1(),rej2(),rej3()] ).then(function(){
console.log('haha')
},function(e){
console.error(e);
})
在拒绝处理程序中,我只看到第一个拒绝。是否可以查看所有三个拒绝?
是的,可以查看所有三个拒绝。Promise.all
一旦一个承诺被拒绝,就会被拒绝。相反 - 使用Promise.settle:
Promise.settle([rej1(), rej2(), rej3()).then(function(results){
var rejections = results.filter(function(el){ return el.isRejected(); });
// access rejections here
rejections[0].reason(); // contains the first rejection reason
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)