


6 Merkmale der asynchronen JavaScript-Programmierung Versprechen mode_javascript-Fähigkeiten
Bevor wir mit der formellen Einführung beginnen, möchten wir sehen, wie Javascript Promise aussieht:
var p = new Promise(function(resolve, ablehn) {
discover("hello world");
});
p. then(function(str ) {
alarm(str);
});
1 Was ist der Unterschied zwischen den folgenden beiden Codeteilen?
var p = neues Versprechen (/*...*/);
p.then(func1);
p.then(func2);
// Anlage B
var p = neu Promise(/ *...*/);
p.then(func1)
.then(func2);
Wenn func1() in ExhibitB einen Fehler auslöst, wird fun2() nicht aufgerufen, da der erste Aufruf ein neues Versprechen zurückgibt, das in func1() abgelehnt wird. Das Ergebnis ist, dass func2() übersprungen wird.
Zusammenfassung: Versprechen können in mehrere Pfade aufgeteilt werden, ähnlich wie bei komplexen Flussdiagrammen.
2. Rückruf sollte das Ergebnis liefern
Welche Warnung erhalten Sie, wenn Sie den folgenden Code ausführen?
discover("hello world");
});
p.then(function(str) {})
.then(function(str) {
warning (str);
});
Verwenden Sie auf ähnliche Weise adpater, um die Ergebnisse wie folgt zu ändern:
var p = new Promise(/*...*/);
p .then(feetToMetres)
.then(function(meters) {
warning(meters);
});
Was ist der Unterschied zwischen diesen beiden Codeteilen?
neues Versprechen (Funktion( auflösen, ablehnen) {
auflösen("hello world");
})
.then(
function(str) {
throw new Error("uh oh") ;
},
undefiniert
)
.then(
undefiniert,
function(error) {
warning(error);
}
);
// Anlage B
neues Versprechen(funktion(auflösen, ablehnen) {
auflösen("Hallo Welt");
})
.then(
Funktion(str) {
throw new Error("uh oh");
},
function(error) {
warning(error);
}
);
Im zweiten Teil des Codes befinden sich die Rückruffunktion und die Fehlerrückruffunktion auf derselben Ebene, was bedeutet, dass eine im Rückruf ausgelöste Ausnahme nicht abgefangen wird. Tatsächlich wird der Fehlerrückruf im zweiten Code nur ausgelöst, wenn das Versprechen abgelehnt wird oder das Versprechen selbst fehlschlägt
4. Fehler können behoben werden
Wenn Sie in einer Fehlerrückruffunktion den Fehler nicht erneut auslösen, geht das Versprechen davon aus, dass Sie den Fehler behoben haben, und kehrt zum gelösten Zustand zurück. Im nächsten Beispiel wird „ich bin gerettet“ angezeigt, da der Fehlerrückruf im ersten then() die Ausnahme nicht erneut ausgelöst hat.
var p = new Promise(function(resolve, ablehn) {
reject(new Error("pebkac"));
});
p.then(
undefiniert,
function(error) { }
)
.then(
function(str) {
warning("Ich bin gerettet!");
},
function(error) {
warning("Bad computer!");
}
);
Promise kann man sich wie Schichten auf einer Zwiebel vorstellen. Jedes then() fügt der Zwiebel eine weitere Schicht hinzu. Jede Ebene stellt eine Aktivität dar, die verarbeitet wird. Wenn eine Schicht endet, gilt das Ergebnis als repariert und bereit für die nächste Schicht.
5. Versprechen können pausiert werden
Nur weil Sie bereit sind, eine then()-Methode auszuführen, heißt das nicht, dass Sie nicht pausieren und andere vorzeitig ausführen können. Um das aktuelle Versprechen anzuhalten oder auf den Abschluss eines anderen Versprechens warten zu lassen, geben Sie einfach ein weiteres Versprechen in then() zurück.
var p = new Promise(/*. ..* /);
p.then(function(str) {
if(!loggedIn) {
return new Promise(/*...*/);
}
})
.then(function(str) {
warning("Done.");
})
Im vorherigen Code wird die Eingabeaufforderung erst angezeigt Neues Versprechen ist gelöst. Dies ist eine praktische Möglichkeit, mehr Abhängigkeiten in einen vorhandenen asynchronen Codepfad einzuführen. Beispielsweise stellen Sie möglicherweise fest, dass die Sitzung des Benutzers abgelaufen ist, und Sie möchten möglicherweise eine zweite Anmeldung initialisieren, bevor Sie mit dem vorherigen Codepfad fortfahren.
6. Aufgelöste Versprechen werden nicht sofort ausgeführt
Erhalte ich eine Eingabeaufforderung, wenn ich den folgenden Code ausführe?
function runme() {
var i = 0 ;
new Promise(function(resolve) {
discover();
})
.then(function() {
i = 2;
});
warning(i);
}
Da das Promise sofort aufgelöst wird und die then()-Methode sofort ausgeführt wird, könnte man meinen, dass Prompt 2 erkannt wird. Die Versprechensdefinition erfordert jedoch, dass alle Aufrufe asynchron erzwungen werden. Daher wird die Eingabeaufforderung vor der Änderung generiert.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Zusammenfassung: Asynchrone Programmierung in C++ ermöglicht Multitasking, ohne auf zeitaufwändige Vorgänge warten zu müssen. Verwenden Sie Funktionszeiger, um Zeiger auf Funktionen zu erstellen. Die Rückruffunktion wird aufgerufen, wenn der asynchrone Vorgang abgeschlossen ist. Bibliotheken wie boost::asio bieten asynchrone Programmierunterstützung. Der Praxisfall zeigt, wie man mit Funktionszeigern und boost::asio asynchrone Netzwerkanfragen umsetzt.

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

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Eine detaillierte Erklärung von Promise.resolve() erfordert spezifische Codebeispiele. Promise ist ein Mechanismus in JavaScript zur Verarbeitung asynchroner Vorgänge. In der tatsächlichen Entwicklung ist es häufig erforderlich, einige asynchrone Aufgaben zu verarbeiten, die nacheinander ausgeführt werden müssen, und die Methode Promise.resolve () wird verwendet, um ein erfülltes Promise-Objekt zurückzugeben. Promise.resolve() ist eine statische Methode der Promise-Klasse, die a akzeptiert

3 häufige Probleme und Lösungen bei der asynchronen Programmierung in Java-Frameworks: Callback Hell: Verwenden Sie Promise oder CompletableFuture, um Callbacks intuitiver zu verwalten. Ressourcenkonflikt: Verwenden Sie Synchronisierungsprimitive (z. B. Sperren), um gemeinsam genutzte Ressourcen zu schützen, und erwägen Sie die Verwendung threadsicherer Sammlungen (z. B. ConcurrentHashMap). Nicht behandelte Ausnahmen: Behandeln Sie Ausnahmen in Aufgaben explizit und verwenden Sie ein Ausnahmebehandlungs-Framework (z. B. CompletableFuture.exclusionally()), um Ausnahmen zu behandeln.

Das Go-Framework nutzt die Parallelitäts- und Asynchronitätsfunktionen von Go, um einen Mechanismus zur effizienten Abwicklung gleichzeitiger und asynchroner Aufgaben bereitzustellen: 1. Parallelität wird durch Goroutine erreicht, sodass mehrere Aufgaben gleichzeitig ausgeführt werden können. 2. Asynchrone Programmierung wird über Kanäle implementiert kann ausgeführt werden, ohne den Hauptthread zu blockieren. Geeignet für praktische Szenarien wie die gleichzeitige Verarbeitung von HTTP-Anfragen, die asynchrone Erfassung von Datenbankdaten usw.

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

1. Warum asynchrone Programmierung verwenden? Bei der herkömmlichen Programmierung werden I/O-Vorgänge blockiert. Das bedeutet, dass das Programm auf den Abschluss eines Vorgangs wartet, bevor es fortfährt. Dies kann für eine einzelne Aufgabe gut funktionieren, kann jedoch dazu führen, dass das Programm bei der Verarbeitung einer großen Anzahl von Aufgaben langsamer wird. Die asynchrone Programmierung durchbricht die Einschränkungen herkömmlicher blockierender E/A und verwendet nicht blockierende E/A. Dies bedeutet, dass das Programm Aufgaben zur Ausführung auf verschiedene Threads oder Ereignisschleifen verteilen kann, ohne auf den Abschluss der Aufgabe warten zu müssen. Dadurch kann das Programm mehrere Aufgaben gleichzeitig bearbeiten und so die Leistung und Effizienz des Programms verbessern. 2. Die Grundlage der asynchronen Python-Programmierung Die Grundlage der asynchronen Python-Programmierung sind Coroutinen und Ereignisschleifen. Coroutinen sind Funktionen, die es einer Funktion ermöglichen, zwischen Anhalten und Wiederaufnehmen zu wechseln. Die Ereignisschleife ist für die Planung verantwortlich
