ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で非同期関数が常に Promise を返すのはなぜですか?

JavaScript で非同期関数が常に Promise を返すのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-14 01:13:09
オリジナル
183 人が閲覧しました

Why Do Async Functions Always Return Promises in JavaScript?

値の代わりに Promise を返す非同期関数

async/await プログラミングでは、非同期関数は常に Promise を返します。この Promise は、関数の非同期作業の最終的な完了を表します。

別の非同期コンテキストで非同期関数を呼び出す場合、await を使用して、Promise が安定するまで一時停止できます。ただし、非同期コンテキスト (多くの場合、トップレベルまたはイベント ハンドラー) では、Promise を直接使用する必要があります:

latestTime()
.then(time => {
  console.log(time);
})
.catch(error => {
  // Handle/report error
});
ログイン後にコピー

最新の環境では、トップレベルの await がモジュール内でサポートされています:

const time = await latestTime();
ログイン後にコピー

より深く理解するために、非同期の明示的な Promise コールバック バージョンを調べてみましょうfunction:

function latestTime() {
  return new Promise((resolve, reject) => {
    web3.eth.getBlock('latest')
      .then(bl => {
        console.log(bl.timestamp);
        console.log(typeof bl.timestamp.then == 'function');
        resolve(bl.timestamp);
      })
      .catch(reject);
  });
}
ログイン後にコピー

このコールバック バージョン:

  • Promise Executor 関数 (新しい Promise に渡される) は同期的に実行され、web3.eth.getBlock オペレーションを開始します。
  • Promise Executor またはコールバック内のエラーはすべてキャッチされ、Promise に変換されます拒否。

以上がJavaScript で非同期関数が常に Promise を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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