1

ブルーバードが未処理の拒否をログに記録するのではなく、ドロップする時期を理解するのに苦労しています。これは、ドキュメンテーションで「2 番目のターン」と呼ばれるものと関係があると思いますが、それが何を意味するのかは明確ではありません。

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でした。私はばかです。)現在のサイレント失敗を乗り越えるために .method ではなく .promisify を使用すると思いますが、見逃してしまう他の状況があるかもしれないのではないかと恐れています。スローされたエラー。

4

1 に答える 1