ホームページ > ウェブフロントエンド > jsチュートリアル > 連鎖した約束は拒否をどのように処理し、伝播しますか?

連鎖した約束は拒否をどのように処理し、伝播しますか?

Linda Hamilton
リリース: 2024-12-09 07:11:07
オリジナル
1006 人が閲覧しました

How Do Chained Promises Handle and Propagate Rejections?

チェーンされた Promise が拒否を通過しない

Promise チェーンでは、Promise の解決は、そのエラー ハンドラー関数が拒否にどのように応答するかによって決まります。 .then() メソッドは、コールバック関数の結果に対する新しい Promise を返します。成功ハンドラーまたはエラー ハンドラーが指定されていない場合、結果は次の Promise に直接渡されます。

エラーが処理されると、結果の Promise はエラー ハンドラーからの戻り値で満たされます。エラーを再スローしてチェーンの下に伝播するには、代わりに err をスローします。

ウィジェット ショップの例では、チェーン内の Promise がエラーを受け取ったときに、後続の Promise が確実にエラーを受信できるように、そのエラーを前方にスローする必要があります。チェーンは成功値を受け取りません。

データベース クエリ チェーンでは、最初のクエリでエラーが発生した場合、エラー ハンドラーを省略すると、たとえ後続の Promise は意味のある値を受け取らない可能性があります。

db.query({ parent_id: value }).then(function(query_result) {
    return db.put({
        parent_id: query_result[0].parent_id
    });
}).then(function(first_value_result) {
    return db.put({
        reference_to_first_value_id: first_value_result.id
    });
}.then(values_successfully_entered);
ログイン後にコピー

要約すると、拒否が発生した後にチェーン内の後続の Promise が成功値を受け取らないようにするには、エラー ハンドラー関数はエラーをスローするか、約束を拒否されました。

以上が連鎖した約束は拒否をどのように処理し、伝播しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート