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!