ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で Promise チェーンの解決された値にアクセスするにはどうすればよいですか?

JavaScript で Promise チェーンの解決された値にアクセスするにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-04 13:40:39
オリジナル
1044 人が閲覧しました

How Do I Access the Resolved Value of a Promise Chain in JavaScript?

Promise Chaining と Value Access について

Angular などの JavaScript フレームワークで Promise を扱う場合、Promise を返す非同期関数に遭遇することがあります。 Angular の $q の例のようにドキュメント:

promiseB = promiseA.then(function(result) {
  return result + 1;
});
ログイン後にコピー

ドキュメントには、「promiseB は、promiseA が解決された直後に解決されます...promiseA の結果が 1 ずつ増加します」と記載されていますが、これがどのように機能するかは明確ではないかもしれません。

これを理解する鍵は、promiseA の then 関数が新しい Promise、PromiseB を返すことを認識することです。この新しい Promise は、promiseA が解決された直後に解決され、その値は、promiseA 内の success 関数の戻り値によって決定されます。

この場合、success 関数は「結果 1」を返すため、promiseB は次のように解決されます。 result の値は 1 増加します。 したがって、この値にアクセスするには、次の操作を実行できます。

promiseB.then(function(result) {
    // Here you can use the result of promiseB
});
ログイン後にコピー

最新の JavaScript バージョン (ES7 以降) では、次のことができます。同じ機能を実現するには、async/await 構文を使用します。

async function doSomething() {
    let result = await functionThatReturnsPromiseA();
    return result + 1;
}
ログイン後にコピー

この場合、await は、promiseA からの結果をラップ解除し、結果変数に直接割り当てます。これにより、 Promise object.

async/await は、常に Promise を返す async 関数内でのみ使用できることに注意してください。したがって、非同期関数の戻り値にアクセスしたい場合は、別の非同期コンテキスト内で await を使用する必要があります。

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

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