Heim >Web-Frontend >js-Tutorial >Geben asynchrone Funktionen immer Versprechen zurück?
Frage: Geben asynchrone Funktionen implizit Versprechen zurück?
In JavaScript werden asynchrone Funktionen mit dem Schlüsselwort async deklariert und werden häufig automatisch ausgeführt Rückgabeversprechen. Dies führt jedoch zu einer potenziellen Inkonsistenz: Wenn ein Wert, der kein Versprechen ist, explizit zurückgegeben wird, scheint die Funktion den Wert in ein Versprechen zu verpacken.
Antwort: Alle asynchronen Funktionen geben Versprechen zurück
Das beobachtete Verhalten ist korrekt: Alle asynchronen Funktionen geben implizit Versprechen zurück. Im Einzelnen:
Beispiel:
async function increment(num) { return num + 1; } // Logs 4, as the returned promise resolves to 4. increment(3).then(num => console.log(num));
Umbruchverhalten:
Dieses Umbruchverhalten gilt nur für Generatorfunktionen. Generatorfunktionen geben beispielsweise auch Versprechen zurück, allerdings auf andere Weise:
function* foo() { return 'test'; } // Logs an object, not "test". console.log(foo()); // Logs 'test' by explicitly calling .next() on the generator function. console.log(foo().next().value);
Das obige ist der detaillierte Inhalt vonGeben asynchrone Funktionen immer Versprechen zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!