Bluebird Promise による非同期例外の処理
非同期ルーチンを使用する場合、例外処理の管理は難しい場合があります。 Bluebird.js の重要な機能である Promise は、非同期例外を処理する構造化された方法を提供します。
課題
コード例では、 setTimeout が非約束のコールバック。このコールバック内でエラーがスローされると、Bluebird の catch はトリガーされず、プログラムがクラッシュします。
Bluebird の Promise 構造
Promise は、コールバック内でスローされた例外をインターセプトします。関数 (then/catch/Promise コンストラクター)。非同期コールバックからの例外を処理するには、例外を Promise でラップすることが重要です。
エレガントな例外処理
シナリオでは、setTimeout コールバックを Promise で囲むことができます。 。次に、catch ブロックがエラーをキャッチします。
<code class="javascript">function getPromise() { return new Promise(function(resolve, reject) { setTimeout(resolve, 500); }).then(function() { console.log("hihihihi"); throw new Error("Oh no!"); }); }</code>
Rejection is Key
非 Promise コールバック内で直接エラーをスローしないでください。代わりに、周囲の約束を拒否してください。必要に応じて、try-catch を使用して適切な処理を確保します。
<code class="javascript">function getPromise() { return new Promise(function(resolve, reject) { try { setTimeout(resolve, 500); } catch (err) { reject(err); } }); }</code>
これらの原則に従うことで、不正な非同期コールバックであっても、Node.js とブラウザの両方で適切な例外処理を確保できます。
以上がBluebird Promise で非同期例外を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。