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

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

Linda Hamilton
リリース: 2025-01-03 19:16:41
オリジナル
526 人が閲覧しました

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

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