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());
Problem:
Wenn Sie diesen Code ausführen, wird in der Konsole die Meldung „Promise {
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()) })()
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()) })()
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!