Promise ist ein Konstrukt in JavaScript, mit dem Sie asynchronen Code erstellen können, der mit den Ergebnissen der Datenverarbeitung arbeitet. Es ist ein leistungsfähiges Tool, mit dem Sie asynchrone Ereignisse verarbeiten und den Ablauf der Codeausführung steuern können. In einer Standardsituation führt Promise Operationen asynchron aus, aber manchmal ist es notwendig, ein bereits ausgeführtes Promise mit einem bestimmten Wert zu erstellen.
Bereits ausgeführtes Promise stellt ein Objekt dar, das sich in einem abgeschlossenen Zustand (gelöst oder rejected) mit einem vordefinierten Ergebnis befindet. Dies kann nützlich sein, wenn Sie die Ergebnisse asynchroner Vorgänge an andere Teile der Anwendung übergeben müssen, ohne jedes Mal einen asynchronen Aufruf durchführen zu müssen.
Das Erstellen eines bereits ausgeführten Promises ist einfach genug. Dazu wird eine statische Methode verwendet Promise.resolve() um ein Promise zu erstellen, befindet sich der Status aufgelöst. Diese Methode akzeptiert als Argument den Wert, der als Promise-Ergebnis verwendet werden soll. Daher kann das Ergebnis eines ausgeführten Promise abgerufen werden, ohne dass Sie asynchrone Aufrufe verwenden oder Werte in ein Promise umbrechen müssen.
Was ist ein Versprechen?
Promise wird mit dem Promise-Konstruktor erstellt und nimmt eine Colback-Funktion an, die zwei Argumente enthält: resolve und reject. Resolve wird aufgerufen, wenn ein asynchroner Vorgang erfolgreich war und reject, wenn ein Fehler aufgetreten ist.
Einer der Hauptvorteile von Promis ist die Möglichkeit, asynchrone Operationen zu verketten (chaining). Dadurch bleibt der Code konsistent und verständlich.
Promise hat eine Reihe von Methoden zum Arbeiten mit Daten, z. B. then, catch, finally. Sie können das Ergebnis der Promis und nachfolgende Fehler verarbeiten.
Mit Promise können Sie besser lesbaren und klareren asynchronen Code erstellen, wodurch er linearer und benutzerfreundlicher wird.
Warum brauche ich ein bereits ausgeführtes Promise?
Ein bereits ausgeführtes Promise ist eine besondere Art von Promise, die das Ergebnis zurückgibt
unmittelbar nach seiner Gründung. Normalerweise werden Promis zur Verarbeitung asynchroner Vorgänge verwendet, aber
in einigen Fällen kann es nützlich sein, ein bereits ausgeführtes Promise zu verwenden.
Der Hauptvorteil eines bereits ausgeführten Promise besteht darin, dass es Ihnen ermöglicht, synchron zu erhalten
das Ergebnis eines asynchronen Vorgangs. Eine solche Promis kann nützlich sein, wenn Sie nicht erwartet werden müssen
der Vorgang wird beendet, und Sie müssen sofort ein Ergebnis für die weitere Verarbeitung erhalten.
Darüber hinaus kann ein bereits ausgeführtes Promise verwendet werden, um das Ergebnis bequem zu behandeln
eine Operation, bei der der Ausdruck als Promis angegeben werden muss, die Operation jedoch nicht tatsächlich ausgeführt werden muss.
Dies kann beim Testen oder Debuggen von Code nützlich sein, wenn ein echter asynchroner Code ersetzt werden muss
Simulationsoperation mit festem Ergebnis.
Schritt 1: Erstellen Sie ein Versprechen
Der Promise(executor) -Konstruktor akzeptiert eine executor-Funktion, die zwei Parameter aufweist: resolve und reject . Die executor-Funktion muss asynchronen Code enthalten und entweder resolve aufrufen, wenn der Vorgang erfolgreich abgeschlossen wurde, oder reject , wenn ein Fehler aufgetreten ist.
Um beispielsweise ein Promise zu erstellen, das eine Zufallszahl zwischen 1 und 10 zurückgibt, können Sie den folgenden Code verwenden:
const myPromise = new Promise((resolve, reject) => 5) else >);
Wenn in diesem Beispiel eine Zufallszahl größer als 5 ist, wird die Funktion resolve mit dieser Zahl als Argument aufgerufen. Wenn die Zahl kleiner oder gleich 5 ist, wird die reject-Funktion mit dem Fehlerobjekt als Argument aufgerufen.
Schritt 2: Promise zulassen
Im obigen Beispiel, nachdem eine Funktion einen asynchronen Vorgang ausgeführt hat someAsyncFunction, Wert result wird an die Methode übergeben resolve. Danach, versprechen myPromise wird aufgelöst und sein Wert ist gleich dem Wert result.
Beachten Sie, dass die Methode resolve kann nur einmal aufgerufen werden. Wenn Sie versuchen, es ein zweites Mal aufzurufen, führt dies zu einem Fehler.
Schritt 3: Ein bereits ausgeführtes Promise zurückgeben
Ein bereits ausgeführtes Promise kann mit der Promise-Methode erstellt werden.resolve(). Mit dieser Methode können Sie einen bereits vorhandenen Wert, sei es ein primitiver Wert, ein Objekt oder ein anderes Promise, in ein neues Promise umbrechen.
Um ein bereits ausgeführtes Promise zu erstellen, müssen Sie nur den Wert an die Promise-Methode übergeben.resolve(). Gibt diese Methode ein neues Promise zurück, das bereits mit dem übergebenen Wert als Ergebnis ausgeführt wurde.
| Kode: | const value = 42; const promise = Promise.resolve(value); promise.then(result => < console.log(result); // 42 >); |
|---|---|
| Die Beschreibung: |
Dieser Ansatz zum Erstellen eines bereits ausgeführten Promise kann nützlich sein, wenn Sie das Ergebnis eines asynchronen Vorgangs zurückgeben möchten, der bereits in der Vergangenheit ausgeführt wurde oder sich in einem anderen Teil des Programms befindet. Dies vereinfacht die Arbeit mit Promises und macht den Code klarer und lesbarer.
Verwenden eines bereits ausgeführten promise
Um ein bereits ausgeführtes Promise zu erstellen, müssen Sie das Ergebnis der ausgeführten Operation einfach in einen Promise-Konstruktor umbrechen:
const result = 'Результат выполненной операции';const promise = new Promise((resolve) => );promise.then((value) => );
In diesem Beispiel wird ein Promise mit dem Promise-Konstruktor erstellt und das Ergebnis des Vorgangs wird an die resolve-Funktion übergeben. Dann können wir mit der then-Methode den Wert des Ergebnisses abrufen und die weiteren Schritte ausführen.
Die Verwendung eines bereits ausgeführten Promise ist nützlich, wenn Sie das Ergebnis einer Operation übergeben oder eine Aktionskette ausführen müssen, wenn eine Operation erfolgreich ausgeführt wird.