Heim >Web-Frontend >js-Tutorial >Wie greife ich mit async-await auf Rückgabewerte von asynchronen Funktionen zu?

Wie greife ich mit async-await auf Rückgabewerte von asynchronen Funktionen zu?

DDD
DDDOriginal
2024-11-12 22:39:02357Durchsuche

How to Access Return Values from Async Functions with async-await?

Werte von asynchronen Funktionen mit async-await zurückgeben

Beim Aufrufen einer asynchronen Funktion mit der async-await-Syntax direkt auf den Rückgabewert zugreifen kann zu einem ausstehenden Promise führen. In diesem Artikel wird erläutert, wie Sie dieses Problem beheben können.

Warten auf Werte außerhalb des asynchronen Bereichs

Ihr erster Versuch, den Rückgabewert der getData-Funktion zu protokollieren, war nicht erfolgreich, weil Sie es waren Versuch, auf einen Wert außerhalb eines asynchronen Bereichs zu warten. Die async-await-Syntax kann nur innerhalb asynchroner Funktionen oder Blöcke verwendet werden (gekennzeichnet durch das Schlüsselwort async).

Asynchrones IIFE zum Wrap-Logging

Um dieses Problem zu beheben, Sie können Ihre console.log-Anweisung wie folgt in einen asynchronen „sofort aufgerufenen Funktionsausdruck“ (IIFE) einschließen:

(async () => {
  console.log(await getData());
})();

Dadurch wird sichergestellt, dass die Protokollierung in einem asynchronen Kontext durchgeführt wird, sodass die Wait-Syntax ordnungsgemäß funktioniert.

Async/Await for Promise Returns weglassen

In Ihrem Beispiel gibt axios ein Promise zurück. In solchen Fällen können Sie Ihren Code vereinfachen, indem Sie die async/await-Syntax für Ihre getData-Funktion weglassen und das Promise-Objekt direkt verwenden:

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}

Dann können Sie weiterhin das asynchrone IIFE verwenden, um das Ergebnis als zu protokollieren vorher:

(async () => {
  console.log(await getData());
})();

Durch Befolgen dieser Ansätze können Sie sicherstellen, dass auf Werte, die von asynchronen Funktionen mit async-await zurückgegeben werden, korrekt zugegriffen und diese verarbeitet werden.

Das obige ist der detaillierte Inhalt vonWie greife ich mit async-await auf Rückgabewerte von asynchronen Funktionen zu?. 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