我无法理解蓝鸟何时会记录未处理的拒绝而不是丢弃它。我想这与文档中所说的“第二回合”有关,但我不清楚这意味着什么。
Promise.reject(new Error("oops"))
-> 没有日志
Promise.reject(new Error("oops")).then(function() {})
-> 堆栈跟踪记录
Promise.method(function() { throw new Error("oops"); })()
-> 没有日志
Promise.method(function() { throw new Error("oops"); })().then(function() {})
-> 堆栈跟踪记录
Promise.promisify(function(k) { k(new Error("oops"), null); })()
-> 堆栈跟踪记录
我正在将一些代码转换为蓝鸟承诺,但我收到的拒绝到处都是。(好吧,首先是#100,我是个白痴。)我想我会使用 .promisify 而不是 .method 来克服我目前的无声失败,但我害怕可能会有其他情况我会错过抛出的错误。