JavaScript では、await キーワードは非同期関数内でのみ有効です。このエラーは、非同期関数で await を使用しようとすると発生します。
次のコード スニペットを考えてみましょう:
// lib/helper.js var myfunction = async function (x, y) { return [x, y]; }; exports.myfunction = myfunction;
このコードは、myfunction という非同期関数を定義します。別のファイルに、次のコードが記述されます。
// anotherFile.js var helper = require('./helper.js'); var start = function (a, b) { const result = await helper.myfunction('test', 'test'); }; exports.start = start;
このコードは、ヘルパー ファイルから myfunction にアクセスします。ただし、非同期開始関数内で await を呼び出そうとするため、「await は非同期関数でのみ有効です」エラーが発生します。
この問題を解決するには、開始関数を非同期にする必要があります。
async function start(a, b) { const result = await helper.myfunction('test', 'test'); console.log(result); }
要約すると、await を使用するには、外側の関数が非同期関数である必要があります。エラーで「await は async 関数でのみ有効です」と指定されている場合は、await が呼び出される関数が async として正しくマークされていることを確認してください。
以上がJavaScript で「await は非同期関数でのみ有効」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。