Heim >Web-Frontend >js-Tutorial >Geben asynchrone Funktionen immer Versprechen zurück, auch ohne explizite Rückgaben?
Implizite Rückgabe von Versprechen in asynchronen Funktionen
Entgegen der Annahme, dass asynchrone Funktionen die Werte von Wait-Ausdrücken direkt zurückgeben, kehren sie tatsächlich immer zurück ein Versprechen. In Fällen, in denen keine explizite Return-Anweisung vorhanden ist, wird der zurückzugebende Wert automatisch in ein Versprechen eingeschlossen. Dies gilt für alle Rückgabewerte, einschließlich Nicht-Versprechen.
Beispiel:
async function increment(num) { return num + 1; } increment(3).then(num => console.log(num)); // Logs 4
In diesem Szenario wird eine Zahl zurückgegeben, obwohl sie immer noch zurückgegeben wird eingebettet in ein Versprechen. Dies wird deutlich, wenn über die Methode then() auf den zurückgegebenen Wert zugegriffen wird.
Andere Fälle:
Ausnahme:
Eine Ausnahme von dieser Regel tritt auf, wenn ein Versprechen explizit aus einer asynchronen Funktion zurückgegeben wird. In solchen Fällen wird das Versprechen nicht neu verpackt.
Beispiel:
async function increment(num) { return new Promise(resolve => resolve(num + 1)); } increment(3).then(num => console.log(num)); // Logs 4
Fazit:
While Dieses Verhalten kann von herkömmlichen JavaScript-Return-Anweisungen abweichen, es steht im Einklang mit dem Konzept der Generatoren in ES6, die nicht den genauen Wert als Rückgabewert zurückgeben Aussage.
Das obige ist der detaillierte Inhalt vonGeben asynchrone Funktionen immer Versprechen zurück, auch ohne explizite Rückgaben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!