ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「await は非同期関数でのみ有効」が発生するのはなぜですか?

JavaScript で「await は非同期関数でのみ有効」が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 19:16:41543ブラウズ

Why Does

「await は非同期関数内でのみ有効です」エラー

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 サイトの他の関連記事を参照してください。

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