Heim >Web-Frontend >js-Tutorial >Warum geben asynchrone Funktionen ausstehende Versprechen statt unmittelbarer Werte zurück?
Warum gibt eine asynchrone Funktion Promise mit dem Status „Ausstehend“ anstelle eines Werts zurück?
Der Code definiert eine asynchrone Funktion, AuthUser, die aufruft google.login() und gibt das Versprechen zurück, das es liefert. Wenn die Funktion aufgerufen wird, wird das Versprechen mit dem Status „Ausstehend“ protokolliert, da sein Ergebnis noch nicht aufgelöst wurde.
Lösung:
Um auf den gelösten Wert des Versprechens zuzugreifen, klicken Sie auf it muss mit .then() verkettet werden, auch wenn es noch aussteht. Zum Beispiel:
AuthUser(data) .then((token) => { console.log(token); // "Some User token" });
Details:
Versprechen sind einseitige Operationen. Sobald sie aufgelöst sind, wird ihr Wert unabhängig von ihrem Status (aufgelöst oder ausstehend) an die Methode .then() oder .catch() übergeben. Der Rückgabewert von .then() ist der aufgelöste Wert des Versprechens.
Im bereitgestellten Code gibt AuthUser das Versprechen direkt zurück, sodass sein aufgelöster Wert erst verfügbar ist, wenn .then() aufgerufen wird.
Zusätzliche Erkenntnisse:
Das obige ist der detaillierte Inhalt vonWarum geben asynchrone Funktionen ausstehende Versprechen statt unmittelbarer Werte zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!