Heim Web-Frontend js-Tutorial Detailliertes Verständnis der js-Promise-Chain_Javascript-Techniken

Detailliertes Verständnis der js-Promise-Chain_Javascript-Techniken

May 16, 2016 pm 03:02 PM
js promise

Der neue Standard fügt natives Promise hinzu.

Hier besprechen wir nur die Verwendung von Ketten und denken über die Details nach.

1. Überprüfung von then() und Catch()

Die Callback-Funktion kann in den Parametern von then() und Catch() platziert werden, um das Endergebnis eines Promise zu erhalten.

then() kann einen Parameter empfangen, dann wird dieser Rückruf nur aufgerufen, wenn „resolve()“ versprochen wird.

then() kann auch einen zweiten Parameter empfangen, dann wird der zweite Rückruf verwendet, um die Promise-Reject()-Situation zu behandeln.

catch() behandelt speziell Promise-Reject()-Situationen.

Mit anderen Worten, then() kann in beide Richtungen verwendet werden und Catch() kann nur Reject()-Situationen verarbeiten. Es wird jedoch empfohlen, then() für die Verarbeitung vonsolve() und Catch() für die Verarbeitung vonject() zu verwenden.

Zweitens möchte ich jedoch nicht über das oben Genannte sprechen. Das Obige dient lediglich der Überprüfung der grundlegenden Verwendung. Hier beginnen wir, über die Rückgabewerte von then() und Catch() und die Details der Kettenverwendung zu sprechen.

Dann heißt es in der offiziellen Dokumentation, dass sowohl then() als auch Catch() ein Promise zurückgeben, was sehr faszinierend ist. (Ich bin neu in js und habe noch nie zuvor Versprechen in freier Wildbahn erlebt.)

Erstens ist dieses neu zurückgegebene Versprechen nicht das ursprüngliche Versprechen;

Zweitens hängt die Änderung des Status dieses neu zurückgegebenen Versprechens (sei es „resolve()“ oder „reject()“) mit dem Status des vorherigen Versprechens und der Art und Weise zusammen, wie then() verwendet wird.

Erklären Sie zunächst die Situation von then(): (ähnlich wie bei Catch)

var p1 = Promise.resolve("Success");
var p2 = p1.then(task1);
var p3 = p2.then(task2);
Nach dem Login kopieren
Hinweis: Die oben genannten Aufgaben 1 und 2 sind beide Rückrufe.

Hier ist p1 ein erstelltes Versprechen und direkt aufgelöst();

p2 ist ein Versprechen, das durch die Verwendung von then() erhalten wird, und p3 ist ebenfalls ein Versprechen, das durch die Verwendung von then() erhalten wird.

Wie ändert sich der Status von p2? Was ist mit p3?

Ich werde das folgende Bild verwenden, um dieses Konzept zu erklären:

Unter ihnen

1. Das Achteck stellt ein Promise-Objekt dar.

2. Der Kreis stellt den internen Zustand eines Versprechens dar und der schwarze Pfeil stellt Zustandsänderungen dar.

3. Der rechte Pfeil stellt den Aufruf der Then-Funktion dar.

4. Mit anderen Worten, solange die Funktion then aufgerufen wird, wird ein neues Promise-Objekt generiert.

5. Beim Aufruf der Then-Funktion weiß ich nicht, welchen Status das vorherige Promise-Objekt hat. Ist es ausstehend oder erledigt? Dies ist weder anzunehmen noch von außen erkennbar.

6. Der Aufruf der then-Funktion wird nicht blockiert, das heißt, p2 und p3 werden fast sofort generiert, auch wenn p1 noch langsam seinen eigenen Zustand migriert.

Wir wissen, dass der Status von p1 gelöst ist (siehe Code oben). Allerdings wurde hier nicht erklärt, wie sich der Status von p2 und p3 ändert. Wird er gelöst oder abgelehnt? Schauen Sie sich das neue Bild unten an.

Sie können weitere Diamantformen sehen.

Die Raute stellt die Rückruffunktion dar, die beim Aufruf von then übergeben wurde. Die nach oben gerichtete Raute stellt die eingehende Verarbeitung [für das vorherige Promise-Objekt, das aufgelöst wurde] dar, und die nach unten gerichtete Raute stellt die eingehende Verarbeitung [für das vorherige Promise-Objekt, das abgelehnt wurde] dar.

Hinweis: In diesem Beispiel gibt es keine Ablehnungsverarbeitung. Das heißt, die nach unten gerichtete Raute sollte hier der Einfachheit halber nicht gezeichnet werden ist für uns spezifisch. Wie man dann verwendet oder fängt. Schauen Sie sich noch einmal den Beispielcode an:

Wie Sie sehen, haben wir den zweiten Parameter damals nicht bereitgestellt, was bedeutet, dass wir die Ablehnungssituation nicht behandelt haben.

Wenn Sie außerdem Ausschuss verarbeiten möchten, können Sie „dann“ verwenden, oder Sie können „Catch“ verwenden, um den Ausschuss zu verarbeiten. Ansonsten gibt es keinen Unterschied.

1. Wenn der Endstatus von p1 (auflösen oder ablehnen) korrekt verarbeitet wird (wenn dann aufgerufen wird, wird der entsprechende Rückruf übergeben, d. h. es gibt eine entsprechende Raute), dann ändert sich der Status von p2 in „auflösen“. .

2. Wenn der Endstatus von p1 (Auflösen oder Ablehnen) nicht korrekt verarbeitet wird (wenn dann aufgerufen wird, fehlt der entsprechende Rückruf, dh es gibt keine entsprechende Raute), wird an den Status von p1 weitergeleitet p2 (erhält p1-Status).

3. Gib es so weiter.

4. In diesem Artikel wird nicht erklärt, wie man die endgültigen Daten des vorherigen Versprechens im Rückruf erhält, d. h. wie man die Daten überträgt. Dazu gibt es viele Tutorials.

Dritten: Im Folgenden werden einige Beispiele aufgeführt, um diesen Artikel zusammenzufassen.

Der Status von P1 im Bild ist angegeben, Lösung oder Ablehnung werden alle von Ihnen selbst angegeben. Ziel ist es, die Endzustände von P2 und P3 abzuleiten.

Die oben genannten sind vier unabhängige Beispiele ohne Zusammenhang zwischen ihnen.

X bedeutet, dass P3 die Funktion „Dann“ oder „Fang“ nicht verwendet, sodass es keine Möglichkeit gibt, mit „Auflösen“ oder „Ablehnen“ umzugehen.

Wenn es Fehler gibt, korrigieren Sie diese bitte rechtzeitig. Vielen Dank! ~! ! @~~~

Das obige detaillierte Verständnis der js-Versprechenskette ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie Script Home unterstützen.

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie JS und Baidu Maps, um die Kartenschwenkfunktion zu implementieren So verwenden Sie JS und Baidu Maps, um die Kartenschwenkfunktion zu implementieren Nov 21, 2023 am 10:00 AM

So implementieren Sie die Kartenschwenkfunktion mit JS und Baidu Map. Baidu Map ist eine weit verbreitete Kartendienstplattform, die häufig zur Anzeige geografischer Informationen, Positionierung und anderer Funktionen in der Webentwicklung verwendet wird. In diesem Artikel wird erläutert, wie Sie mit JS und der Baidu Map API die Kartenschwenkfunktion implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Vorbereitung Bevor Sie die Baidu Map API nutzen können, müssen Sie zunächst ein Entwicklerkonto auf der Baidu Map Open Platform (http://lbsyun.baidu.com/) beantragen und eine Anwendung erstellen. Erstellung abgeschlossen

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Dec 17, 2023 pm 06:55 PM

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen in PHP und JS. Mit der rasanten Entwicklung des Internets und der Technologie ist der Aktienhandel für viele Anleger zu einer wichtigen Möglichkeit geworden. Die Aktienanalyse ist ein wichtiger Teil der Anlegerentscheidung, und Kerzendiagramme werden häufig in der technischen Analyse verwendet. Wenn Sie lernen, wie man Kerzendiagramme mit PHP und JS zeichnet, erhalten Anleger intuitivere Informationen, die ihnen helfen, bessere Entscheidungen zu treffen. Ein Candlestick-Chart ist ein technischer Chart, der Aktienkurse in Form von Candlesticks anzeigt. Es zeigt den Aktienkurs

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS Dec 17, 2023 am 08:08 AM

So verwenden Sie PHP und JS zum Erstellen eines Aktienkerzendiagramms. Ein Aktienkerzendiagramm ist eine gängige technische Analysegrafik auf dem Aktienmarkt. Es hilft Anlegern, Aktien intuitiver zu verstehen, indem es Daten wie den Eröffnungskurs, den Schlusskurs, den Höchstkurs usw niedrigster Preis der Aktie. In diesem Artikel erfahren Sie anhand spezifischer Codebeispiele, wie Sie Aktienkerzendiagramme mit PHP und JS erstellen. 1. Vorbereitung Bevor wir beginnen, müssen wir die folgende Umgebung vorbereiten: 1. Ein Server, auf dem PHP 2. Ein Browser, der HTML5 und Canvas 3 unterstützt

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen Dec 18, 2023 pm 03:39 PM

Mit der rasanten Entwicklung der Internetfinanzierung sind Aktieninvestitionen für immer mehr Menschen zur Wahl geworden. Im Aktienhandel sind Kerzendiagramme eine häufig verwendete Methode der technischen Analyse. Sie können den sich ändernden Trend der Aktienkurse anzeigen und Anlegern helfen, genauere Entscheidungen zu treffen. In diesem Artikel werden die Entwicklungskompetenzen von PHP und JS vorgestellt, der Leser wird zum Verständnis des Zeichnens von Aktienkerzendiagrammen geführt und es werden spezifische Codebeispiele bereitgestellt. 1. Aktien-Kerzendiagramme verstehen Bevor wir uns mit dem Zeichnen von Aktien-Kerzendiagrammen befassen, müssen wir zunächst verstehen, was ein Kerzendiagramm ist. Candlestick-Charts wurden von den Japanern entwickelt

So verwenden Sie JS und Baidu Maps, um die Funktion zum Zeichnen von Kartenpolygonen zu implementieren So verwenden Sie JS und Baidu Maps, um die Funktion zum Zeichnen von Kartenpolygonen zu implementieren Nov 21, 2023 am 10:53 AM

Verwendung von JS und Baidu Maps zur Implementierung der Kartenpolygonzeichnungsfunktion In der modernen Webentwicklung sind Kartenanwendungen zu einer der häufigsten Funktionen geworden. Durch das Zeichnen von Polygonen auf der Karte können wir bestimmte Bereiche markieren, damit Benutzer sie anzeigen und analysieren können. In diesem Artikel wird erläutert, wie Sie mithilfe von JS und der Baidu-Karten-API die Funktion zum Zeichnen von Kartenpolygonen implementieren, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die Baidu Map API einführen. Mit dem folgenden Code können Sie das JavaScript der Baidu Map API in eine HTML-Datei importieren

Halten Sie Ihr Wort: Die Vor- und Nachteile der Einhaltung Ihrer Versprechen Halten Sie Ihr Wort: Die Vor- und Nachteile der Einhaltung Ihrer Versprechen Feb 18, 2024 pm 08:06 PM

Im täglichen Leben stoßen wir oft auf Probleme zwischen Versprechen und Erfüllung. Ob in einer persönlichen Beziehung oder einer Geschäftstransaktion: Das Einhalten von Versprechen ist der Schlüssel zum Aufbau von Vertrauen. Allerdings sind die Vor- und Nachteile eines Engagements oft umstritten. In diesem Artikel werden die Vor- und Nachteile von Verpflichtungen untersucht und einige Ratschläge gegeben, wie Sie Ihr Wort halten können. Die versprochenen Vorteile liegen auf der Hand. Erstens schafft Engagement Vertrauen. Wenn jemand sein Wort hält, lässt er andere glauben, dass er eine vertrauenswürdige Person ist. Vertrauen ist die Bindung zwischen Menschen, die Menschen mehr machen kann

So verwenden Sie JS und Baidu Map, um die Funktion zur Verarbeitung von Kartenklickereignissen zu implementieren So verwenden Sie JS und Baidu Map, um die Funktion zur Verarbeitung von Kartenklickereignissen zu implementieren Nov 21, 2023 am 11:11 AM

Überblick über die Verwendung von JS und Baidu Maps zum Implementieren von Funktionen zur Verarbeitung von Kartenklickereignissen: In der Webentwicklung ist es häufig erforderlich, Kartenfunktionen zum Anzeigen des geografischen Standorts und geografischer Informationen zu verwenden. Die Verarbeitung von Klickereignissen auf der Karte ist ein häufig verwendeter und wichtiger Teil der Kartenfunktion. In diesem Artikel wird erläutert, wie Sie mithilfe von JS und der Baidu-Karten-API die Klickereignisverarbeitungsfunktion der Karte implementieren, und es werden spezifische Codebeispiele angegeben. Schritte: Importieren Sie die API-Datei von Baidu Map. Importieren Sie zunächst die Datei von Baidu Map API in die HTML-Datei.

See all articles