ホームページ >ウェブフロントエンド >jsチュートリアル >async-await を使用して非同期関数からの戻り値にアクセスする方法

async-await を使用して非同期関数からの戻り値にアクセスする方法

DDD
DDDオリジナル
2024-11-12 22:39:02393ブラウズ

How to Access Return Values from Async Functions with async-await?

async-await を使用した非同期関数からの戻り値

async-await 構文を使用して非同期関数を呼び出す場合、戻り値に直接アクセスする保留中の Promise が発生する可能性があります。この記事では、この問題を解決する方法について説明します。

非同期スコープ外の値を待っています

getData 関数の戻り値をログに記録しようとした最初の試みは、次の理由で失敗しました。非同期スコープ外の値を待機しようとしています。 async-await 構文は、非同期関数またはブロック (async キーワードで示される) 内でのみ使用できます。

ログをラップする非同期 IIFE

この問題を解決するには、次のようにします。次のように、console.log ステートメントを非同期の即時呼び出し関数式 (IIFE) でラップできます。

(async () => {
  console.log(await getData());
})();

これにより、ロギングが非同期コンテキスト内で確実に実行され、await 構文が正しく動作できるようになります。

Promise の戻りに対する非同期/待機の省略

この例では、axios は Promise を返します。このような場合、getData 関数の async/await 構文を省略し、Promise オブジェクトを直接使用することでコードを簡素化できます。

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}

その後も、非同期 IIFE を使用して結果を次のように記録できます。 before:

(async () => {
  console.log(await getData());
})();

これらのアプローチに従うことで、async-await を使用した非同期関数から返された値が正しくアクセスされ、処理されることを保証できます。

以上がasync-await を使用して非同期関数からの戻り値にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。