ホームページ >ウェブフロントエンド >jsチュートリアル >Async 関数と Promise は JavaScript でどのように連携しますか?

Async 関数と Promise は JavaScript でどのように連携しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-22 20:15:17960ブラウズ

How Do Async Functions and Promises Work Together in JavaScript?

非同期関数と Promises

非同期操作を使用する場合、非同期関数と Promise がどのように相互作用するかを理解することが重要です。

非同期関数は常に戻りますPromises

通常の関数とは異なり、非同期関数は常に Promise を返し、非同期操作の完了を示します。これにより、シーケンシャル コードでの非同期操作の処理がより簡単になります。

例:

async function latestTime() {
  const bl = await web3.eth.getBlock('latest');
  return bl.timestamp;
}

プリミティブ値を返すか Promis を返すか

この関数はプリミティブ値 (bl.timestamp) を返しますが、最新時間() 関数自体は Promise を返します。これにより、戻り値にアクセスしようとするときに混乱が生じる可能性があります。

Promises の使用

返された Promise の解決された値にアクセスするには、then( ) メソッド:

latestTime().then((time) => {
  console.log(time);
});

あるいは、最新の JavaScript 環境では、トップレベルのメソッドを使用できます。 await:

const time = await latestTime();
console.log(time);

明示的な Promise の処理

わかりやすくするために、Promise コールバックに関して非同期関数がどのように動作するかをより明示的に表現します。

function latestTime() {
    return new Promise((resolve, reject) => {
        web3.eth.getBlock('latest').then((bl) => {
            resolve(bl.timestamp);
        })
    });
}

以上がAsync 関数と Promise は JavaScript でどのように連携しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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