ホームページ > ウェブフロントエンド > jsチュートリアル > フラットな Promise チェーンで中間 Promise の結果にアクセスするにはどうすればよいですか?

フラットな Promise チェーンで中間 Promise の結果にアクセスするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 15:33:11
オリジナル
514 人が閲覧しました

How Can I Access Intermediate Promise Results in a Flat Promise Chain?

フラットな Promise チェーンでの中間 Promise 結果へのアクセス

フラットな Promise チェーン内の中間 Promise 結果を取得するには、チェーンを分割して別々にする必要があります。

Promise Combinators

パラメータに依存する代わりに単一のコールバックを使用して中間値を取得する場合は、Promise コンビネータを使用して目的の複合値を作成することをお勧めします。このアプローチにより、明確で構造化された制御フローが確保され、モジュール化が簡単になります。

次の例を考えてみましょう。

function getExample() {
    var a = promiseA(…);
    var b = a.then(function(resultA) {
        // some processing
        return promiseB(…);
    });
    return Promise.all([a, b]).then(function([resultA, resultB]) {
        // more processing
        return // something using both resultA and resultB
    });
}
ログイン後にコピー

この例では、Promise コンビネータ Promise です。 all は、a と b の結果を集計するために使用されます。 Promise.all に続くコールバックは、resultA と resultB の両方にアクセスして、複合値を構築するために利用できます。

ヘルパー メソッド

Q、Bluebird などのライブラリは、 などのヘルパー メソッドを提供します。スプレッドを使用して、複数の Promise 結果の処理を簡素化します。 ES5.

…
return Promise.all([a, b]).then(function(results) {
    results.spread(function(resultA, resultB) { … });
});
ログイン後にコピー

Promise.join

Bluebird は、Promise.all と .spread の組み合わせのより効率的な代替手段として、専用の Promise.join 関数を提供します。

…
return Promise.join(a, b, function(resultA, resultB) { … });
ログイン後にコピー

以上がフラットな Promise チェーンで中間 Promise の結果にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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