Promise Chaining による非同期エラー処理
非同期コードを扱う場合、エラーを効果的に処理する方法を考慮することが重要です。キャッチされない例外によってアプリケーションがクラッシュする可能性があるため、適切な戦略を立てることが重要です。
説明したシナリオでは、エラーをスローする setTimeout を使用して Promise が作成されます。このエラーは非同期コールバック内で発生するため、Bluebird Promise のキャッチ ハンドラはキャッチしません。
Promises 内の例外処理
Promises 内でスローされる例外はキャッチできます。独自のコールバック関数。このタイプのエラーを処理するには、次のようにすることができます。
function getPromise() {
return new Promise(function(done, reject) {
setTimeout(done, 500);
}).then(function() {
console.log("hihihihi");
throw new Error("Oh no!");
});
}
ここでは、エラーは then コールバック内でスローされ、Promise の catch ハンドラーによって確実にキャッチされます。
非同期コールバックに関する注意事項
Promise は、自身の範囲外の非同期コールバックからの例外をキャッチしないことを覚えておくことが重要です。これらのタイプのエラーを処理するには、次のことを検討してください。
不正な非同期コールバックの処理例
Node.js またはブラウザで不正な非同期コールバックを処理するには、次のアプローチを使用できます。
function getPromise() {
return new Promise(function(done, reject) {
setTimeout(function() {
try {
// Your rogue async callback here
console.log("hihihihi");
} catch (e) {
reject(e);
}
}, 500);
});
}
このアプローチでは、コールバック内の例外を手動で処理することで、アプリケーションがクラッシュすることがなくなります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3