Ihr Code beinhaltet eine asynchrone Funktion, die ein Versprechen verwendet, aber wenn Sie versuchen, auf das Token innerhalb des Versprechens zuzugreifen, sind Sie es Anstelle eines gelösten Tokens wird ein „Promise {
Ein Versprechen stellt einen Vorgang dar, dessen Abschluss einige Zeit in Anspruch nehmen kann, und bietet eine Möglichkeit, das Ergebnis des Vorgangs zu handhaben, entweder wenn er gelöst (erfolgreicher Abschluss) oder abgelehnt (fehlgeschlagen) wird. Zunächst befindet sich ein Versprechen im Status „Ausstehend“, bis sein Vorgang abgeschlossen ist.
In Ihrem Code geben Sie ein Versprechen von google.login zurück. Wenn Sie versuchen, sofort auf das Token zuzugreifen, steht das Versprechen noch aus; es ist noch nicht gelöst. Das bedeutet, dass Sie den Status „Ausstehend“ als Promise {
Um den aufgelösten Wert eines Versprechens zu erhalten, müssen Sie dessen Methoden .then oder .catch verwenden. Diese Methoden stellen Handler bereit, die ausgeführt werden, wenn das Versprechen entweder aufgelöst oder abgelehnt wird. Durch die Verkettung von .then-Handlern können Sie Aktionen basierend auf dem aufgelösten Wert des Versprechens ausführen.
let AuthUser = function(data) { return google.login(data.username, data.password).then(token => { return token } ) } let userToken = AuthUser(data) console.log(userToken) // Promise { <pending> } userToken.then(function(result) { console.log(result) // "Some User token" })
In diesem Beispiel fügen wir einen .then-Handler hinzu das von AuthUser zurückgegebene Versprechen. Der Handler wird ausgeführt, wenn das Versprechen aufgelöst wird, und erhält den aufgelösten Wert als Parameter. Die console.log-Anweisung innerhalb der .then-Datei gibt dann das tatsächliche Benutzertoken aus.
Promises bieten eine strukturierte Möglichkeit, asynchrone Vorgänge abzuwickeln. Um auf den aufgelösten Wert eines Versprechens zuzugreifen, muss es mit .then- oder .catch-Handlern verkettet werden. Erst nachdem das Versprechen aufgelöst wurde, steht der aufgelöste Wert Ihrem Code zur Verfügung.
Das obige ist der detaillierte Inhalt vonWarum zeigen asynchrone Versprechen zunächst den Status „Ausstehend' an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!