ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript のトップレベルで非同期コードを適切に実行するにはどうすればよいですか?

JavaScript のトップレベルで非同期コードを適切に実行するにはどうすればよいですか?

DDD
リリース: 2024-12-13 06:44:19
オリジナル
215 人が閲覧しました

How Do I Properly Execute Asynchronous Code at the Top Level in JavaScript?

非同期コードのトップレベルの実行

非同期プログラミングでは、async/await 機能を使用して同期タスクと非同期タスクをシームレスに切り替えることができます。ただし、トップレベルで非同期コードを実行する場合は、特定の考慮事項を行う必要があります。

説明

非同期関数を定義すると、Promise が返されます。この関数をトップレベルで呼び出すと、解決された値ではなく Promise がすぐに返されます。これが、コンソールが非同期タスクを実行する前に Promise オブジェクトを出力する理由です。

解決策

これを解決するには、いくつかのオプションがあります。

1.トップレベルの待機 (ES2022 プロポーザル)

最新の環境では、モジュールでトップレベルの待機を使用できます。これにより、モジュール スコープ内で Promise を直接待つことができます。

const text = await main();
console.log(text); // Logs the resolved value
ログイン後にコピー

2.処理されない拒否を伴うトップレベルの非同期関数

決して拒否しないトップレベルの非同期関数を定義できます。これにより、未処理の拒否エラーが防止されますが、エラーは明示的に処理されません。

(async () => {
  try {
    const text = await main();
    console.log(text); // Logs the resolved value
  } catch (e) {
    // Error handling (optional)
  }
})();
ログイン後にコピー

3. then() と catch()

上記のオプションのどちらも適切でない場合は、Promise の then() メソッドと catch() メソッドを使用して結果を処理できます。

main()
  .then((text) => {
    console.log(text); // Logs the resolved value
  })
  .catch((err) => {
    // Error handling
  });
ログイン後にコピー

注: いずれの場合も、未処理の拒否エラーを防ぐために、拒否を適切に処理することが重要です。

以上がJavaScript のトップレベルで非同期コードを適切に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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