等待蓝鸟执行所有的承诺

我想等所有的承诺解决或拒绝,并得到解决承诺的结果在.then和错误“

 'use strict'; const Promise = require('bluebird') var delayOne = Promise.method((p = 1) => p); var delayTwo = (p = 1) => { throw new Error('asf'); }; Promise.all([delayOne(100), Promise.method(delayTwo)(10), delayOne(300)]) .then((res) => console.log(res)) // no logs from here .catch((e) => console.log(e)) .done(); 

但我只从.catch获取日志。 我的错误在哪里?

Promise.all等待所有的承诺履行 ,你想得到的人拒绝,你可以添加.reflect承诺你想允许失败:

 Promise.all([ delayOne(100), Promise.method(delayTwo)(10).reflect(), // reflect here delayOne(300)]) .then((res) => console.log(res)) // no logs from here // don't `.catch(e => console.log(e))` it is not needed // done is deprecated, you don't need it