Heim > Web-Frontend > js-Tutorial > Wie rufe ich Werte aus asynchronen Funktionen mit Async-Await in JavaScript ab?

Wie rufe ich Werte aus asynchronen Funktionen mit Async-Await in JavaScript ab?

Barbara Streisand
Freigeben: 2024-11-12 04:17:02
Original
750 Leute haben es durchsucht

How to Retrieve Values from Async Functions with Async-Await in JavaScript?

So rufen Sie Werte aus asynchronen Funktionen mit Async-Await ab

In JavaScript ist es von entscheidender Bedeutung, zu verstehen, wie Werte aus asynchronen Funktionen zurückgegeben werden. Lassen Sie uns in ein Szenario eintauchen:

Szenario:

Betrachten Sie den folgenden Codeausschnitt:

const axios = require('axios');
async function getData() {
    const data = await axios.get('https://jsonplaceholder.typicode.com/posts');
    return data;
}
console.log(getData());
Nach dem Login kopieren

Problem:

Wenn Sie diesen Code ausführen, wird in der Konsole die Meldung „Promise { }“ angezeigt. Anstatt die erwarteten Daten zurückzugeben, erhalten wir dieses ausstehende Versprechen. Der Grund dafür ist, dass wir versuchen, auf das Ergebnis einer asynchronen Funktion außerhalb eines asynchronen Kontexts zuzugreifen.

Lösung:

Um dieses Problem zu beheben, haben wir muss die Regel einhalten, dass asynchrone Vorgänge nur innerhalb eines anderen asynchronen Kontexts erwartet werden sollten. In unserem Fall können wir dies erreichen, indem wir die Anweisung console.log() in einem asynchronen IIFE (sofort aufgerufener Funktionsausdruck) kapseln:

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

(async () => {
  console.log(await getData())
})()
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Anweisung console.log() nur ausgeführt wird Sobald die GetData()-Funktion ihren asynchronen Vorgang abgeschlossen und die Daten zurückgegeben hat.

Alternativ:

Wenn axios ein Promise zurückgibt, wie es in Ihrem Code der Fall ist, werden wir Sie können den Code vereinfachen, indem Sie Async und Wait aus getData() entfernen. Der Code sieht dann wie folgt aus:

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

(async () => {
  console.log(await getData())
})()
Nach dem Login kopieren

Dies erzielt immer noch das gleiche Ergebnis, indem in einem asynchronen Kontext auf die Funktion getData() gewartet wird.

Das obige ist der detaillierte Inhalt vonWie rufe ich Werte aus asynchronen Funktionen mit Async-Await in JavaScript ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage