Heim >Web-Frontend >js-Tutorial >Warum tritt in JavaScript die Meldung „Warten ist nur in der asynchronen Funktion gültig' auf?

Warum tritt in JavaScript die Meldung „Warten ist nur in der asynchronen Funktion gültig' auf?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 19:16:41527Durchsuche

Why Does

Fehler „await is Only Valid in Async Function“

In JavaScript ist das Schlüsselwort „await“ nur innerhalb einer asynchronen Funktion gültig. Dieser Fehler tritt auf, wenn versucht wird, „await“ in einer nicht asynchronen Funktion zu verwenden.

Beachten Sie den folgenden Codeausschnitt:

// lib/helper.js
var myfunction = async function (x, y) {
  return [x, y];
};
exports.myfunction = myfunction;

Dieser Code definiert eine asynchrone Funktion namens „myfunction“. In einer separaten Datei wird der folgende Code geschrieben:

// anotherFile.js
var helper = require('./helper.js');

var start = function (a, b) {
  const result = await helper.myfunction('test', 'test');
};
exports.start = start;

Dieser Code greift über die Hilfsdatei auf die myfunction zu. Es wird jedoch versucht, „await“ innerhalb der nicht asynchronen Startfunktion aufzurufen, was den Fehler „await is only valid in async function“ auslöst.

Um dieses Problem zu beheben, sollte die Startfunktion asynchron gemacht werden:

async function start(a, b) {
  const result = await helper.myfunction('test', 'test');

  console.log(result);
}

Zusammenfassend lässt sich sagen, dass die Verwendung von „await“ erfordert, dass die einschließende Funktion eine asynchrone Funktion ist. Wenn der Fehler angibt, dass „await nur in der asynchronen Funktion gültig ist“, stellen Sie sicher, dass die Funktion, in der „await“ aufgerufen wird, korrekt als asynchron markiert ist.

Das obige ist der detaillierte Inhalt vonWarum tritt in JavaScript die Meldung „Warten ist nur in der asynchronen Funktion gültig' auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn