Heim > Web-Frontend > js-Tutorial > Warum zeigen asynchrone Versprechen zunächst den Status „Ausstehend' an?

Warum zeigen asynchrone Versprechen zunächst den Status „Ausstehend' an?

Linda Hamilton
Freigeben: 2024-12-12 11:11:09
Original
514 Leute haben es durchsucht

Why Do Asynchronous Promises Initially Show a Pending State?

Warum asynchrone Versprechen anfänglich ausstehende Zustände anzeigen

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 { }“ angezeigt.

Promise Resolution und Ausstehende Zustände

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.

Versprechen verketten: Aufgeschobene Auflösung

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 { }.

Versprechensergebnisse erfassen

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.

Beispiel: Erfassen von Versprechenswerten

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"
})
Nach dem Login kopieren

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.

Fazit

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage