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 サイトの他の関連記事を参照してください。