【JavaScript ECMAScript】SyntaxError: await is only valid in async functions, async generators and modulesエラーの使い方
SyntaxError: await is only valid in async functions, async generators and modulesエラーの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
SyntaxError: await is only valid in async functions, async generators and modulesオブジェクトは、JavaScriptの文法エラーの一種です。このエラーは、awaitキーワードが、その使用が許可されていないコンテキスト(文脈)で使用された場合に発生します。
awaitキーワードは、JavaScriptで非同期処理の完了を「待つ」ために使用される特別なキーワードです。しかし、この「待つ」という動作は、コードの実行を一時停止させるため、常に非同期の環境下でのみ許可されています。具体的には、asyncキーワードで宣言された非同期関数(async function)、非同期ジェネレーター関数(async generator function)、またはECMAScriptモジュール(ES Modules)のトップレベルスコープ内でのみawaitを使用することができます。
例えば、通常の同期関数や、スクリプトファイルの最も外側のスコープ(トップレベル)でawaitを直接使用しようとすると、このSyntaxErrorが発生します。
このエラーを解決するためには、awaitを使用したいコードが、適切なasync関数内にあるか、またはESモジュールのトップレベルで実行されていることを確認してください。もしawaitを使用したい場合、そのコードをasync functionで囲むか、ファイルをESモジュールとして設定することで問題を解決できます。
構文(syntax)
1function fetchData() { 2 const data = await Promise.resolve('Hello, JavaScript!'); 3 console.log(data); 4}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません