Auf den Wert von Versprechen zugreifen
Versprechen werden häufig für asynchrone Vorgänge in JavaScript verwendet. Eine der wichtigsten Methoden für die Interaktion mit Versprechen ist die Methode .then(). Mit dieser Methode können wir mehrere Versprechen verketten und in den nachfolgenden Versprechen auf den Wert des vorherigen Versprechens zugreifen.
Betrachten Sie das folgende Angular-Beispiel:
promiseB = promiseA.then(function(result) { return result + 1; });
Dieses Beispiel definiert PromiseB als neues Versprechen Das wird sofort nach der Auflösung von PromiseA gelöst. Laut der Angular-Dokumentation „ist sein Wert das Ergebnis von PromiseA, erhöht um 1.“
Es stellt sich die Frage: Wie kann ein Promise-Objekt, das vom Typ Object ist, einen primitiven Wert wie eine Zahl halten?
Die Antwort liegt in der Semantik der .then()-Methode. Die für .then() bereitgestellte Erfolgsrückruffunktion gibt einen neuen Wert zurück, der zum Wert des neuen Versprechens wird. In diesem Fall gibt die Success-Callback-Funktion Ergebnis 1 zurück, das den Wert von Ergebnis erhöht und ihn als Wert von PromiseB zurückgibt.
Um auf den Wert von PromiseB zuzugreifen, können wir eine weitere .then()-Methode verketten und Stellen Sie eine Erfolgsrückruffunktion bereit:
promiseB.then(function(result) { // Use the result of promiseB here });
In diesem Rückruf haben wir Zugriff auf den Ergebniswert, der der erhöhte Wert gegenüber dem vorherigen ist Versprechen.
ES7 (2016) führte die async/await-Syntax ein und bietet eine alternative Möglichkeit, Versprechen zu verarbeiten. Mit „await“ können wir den Wert des Versprechens direkt auspacken, wodurch die Verkettung mehrerer .then()-Methoden überflüssig wird. Zum Beispiel:
async function doSomething() { let result = await functionThatReturnsPromiseA(); return result + 1; }
In diesem Beispiel wird das Schlüsselwort „await“ in einer asynchronen Funktion verwendet. Das Schlüsselwort „await“ unterbricht die Ausführung der Funktion, bis functionThatReturnsPromiseA() aufgelöst wird. Sobald das Versprechen aufgelöst ist, wird der Wert des Versprechens der Ergebnisvariablen zugewiesen und die Funktion setzt die Ausführung fort.
Das obige ist der detaillierte Inhalt vonWie enthalten Versprechen und Objekte in JavaScript primitive Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!