Node.js 承诺-捕获承诺中的所有拒绝。所有

Node.js 承诺-捕获承诺中的所有拒绝。所有,node.js,promise,bluebird,Node.js,Promise,Bluebird,我有这个伪代码 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'));

我有这个伪代码

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);
})

在rejectionHandler中,我只看到第一次拒绝。可以查看所有三个拒绝吗?

可以,可以查看所有三个拒绝<代码>承诺。一旦一个承诺被拒绝,所有都会拒绝。相反-使用:

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
});