.then() チェーンでの中間 Promise 結果へのアクセス
Promise は、コード内の非同期操作を管理する便利な方法を提供します。ただし、.then() チェーン内の中間 Promise 結果にアクセスする必要があるシナリオが発生する場合があります。
課題
次の Promise チェーンを考えてみましょう。
function getExample() { return promiseA(…).then(function(resultA) { // Some processing return promiseB(…); }).then(function(resultB) { // More processing return // How do I gain access to resultA here? }); }
このチェーンでは、promiseA() の結果は .then() コールバック内ではアクセスできません。約束B()。最終的な計算で両方の結果を使用する必要がある場合、これは問題になる可能性があります。
チェーンの分割
この制限を克服するには、チェーンを別々に分割します。ピースを作成し、ライブラリが提供する 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.all を使用して、両方の Promise が解決されるまで待機してから、結果を最後の .then() コールバックに渡します。
その他オプション
チェーンを使用し、これらの代替手段を使用すると、中間の Promise 結果に簡単にアクセスし、明確なモジュール式のコード構造を維持できます。
以上がJavaScript `.then()` チェーンの中間 Promise 結果にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。