Heim > Web-Frontend > js-Tutorial > Hauptteil

Was bedeutet Versprechen?

(*-*)浩
Freigeben: 2019-06-18 11:08:07
Original
22177 Leute haben es durchsucht

JS ist Single-Threaded und die Promise-Lösung ist eine Idee der asynchronen Programmierung, die viel leistungsfähiger ist als herkömmliche Rückruffunktionen und -ereignisse. Promise entspricht einem Platzhalter für das Ergebnis einer asynchronen Operation. Es abonniert weder ein Ereignis noch übergibt es eine Rückruffunktion an die Zielfunktion. Stattdessen gibt die Funktion ein Promise zurück (entspricht einer Auftragsnummer).

Was bedeutet Versprechen?

Promise: Englische Versprechenbedeutung: Das Promise-Objekt speichert das Ergebnis eines Ereignisses (normalerweise eine asynchrone Operation), das in der Zukunft enden wird.

Promise hat drei Zustände: (Empfohlenes Lernen: Javascript-Video-Tutorial)

pendding,rejected,resolved
Nach dem Login kopieren

Es gibt nur zwei Möglichkeiten, den Zustand des Promise-Objekts zu ändern:

pendding->rejected,pendding->resolved
Nach dem Login kopieren

Grundlegende Verwendung:

new Promise((resolved,rejected)=>{})
Nach dem Login kopieren

Promise-Objekt aufgelöst und abgelehnte Funktionen Wenn der asynchrone Ereignisstatus „pending->resolved“ erfolgreich ist, wird die aufgelöste Funktion aufgerufen Die abgelehnte Funktion wird aufgerufen.

Der Funktionsparameter then(resolved,rejected) von Promise hat zwei Parameter, eine aufgelöste Funktion und eine abgelehnte Funktion.

Promise's Catch(): Capture-Promise-Fehlerfunktion, die die gleiche Funktion hat wie die im then-Funktionsparameter abgelehnte. Da der von Promise ausgelöste Fehler sprudelnder Natur ist, kann er kontinuierlich übergeben werden wird an Catch übergeben, daher wird empfohlen, die gesamte Fehlerbehandlung in Catch zu platzieren und dann nur erfolgreiche Fehler zu behandeln.

Ein Hauptmerkmal von Promise ist, dass es in einer Kette aufgerufen werden kann und Promise-Objekte dann zurückgegeben und abgefangen werden können.

Promise.all([promise1,promise2]): Der Parameter ist ein Array von Promise-Objekten. Wenn der Status aller Promise-Objekte aufgelöst ist, wird der Status des Objekts aufgelöst und dann aufgerufen Wenn ein Promise-Objekt sofort abgelehnt wird, wird der Status des Objekts abgelehnt und der Catch ausgeführt.

Promise.race([promise1,promise2]): Rennfunktion Wenn sich der Status eines Promise-Objekts ändert, nimmt das Objekt denselben Status an und führt die entsprechende Funktion aus.

Promise-Lebenszyklus

Jedes Promise durchläuft einen kurzen Lebenszyklus, zunächst im Status „Ausstehend“, was bedeutet, dass der asynchrone Vorgang noch nicht beendet ist. Eine ausstehende Zusage gilt ebenfalls als nicht abgewickelt. Sobald der asynchrone Vorgang beendet ist, gilt das Versprechen als erledigt und geht in einen von zwei möglichen Zuständen über:

1. Erfüllt: Der asynchrone Vorgang des Versprechens war erfolgreich.

2. Abgelehnt: Der asynchrone Vorgang von Promise wurde nicht erfolgreich beendet. Dies kann ein Fehler sein oder andere Gründe haben.

Sobald sich der Zustand ändert, wird er „verfestigt“ und bleibt in diesem Zustand und wird sich nicht mehr ändern. Wenn sich der Status ändert, wird die durch Promise.then gebundene Funktion aufgerufen. Hinweis: Sobald ein Versprechen erstellt wurde, wird es „sofort ausgeführt“ und kann nicht storniert werden. Dies ist auch einer seiner Mängel.

Weitere technische Artikel zu Javascript finden Sie in der Spalte js-Tutorial, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonWas bedeutet Versprechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage