Muster zusage vorstellungsgespräch

Ein schließlich-Handler hat keine Argumente. Schließlich wissen wir nicht, ob das Versprechen erfolgreich ist oder nicht. Das ist in Ordnung, da unsere Aufgabe in der Regel darin besteht, “allgemeine” Abschlussverfahren durchzuführen. Erstellen wir ein kancellierbares Versprechensdienstprogramm, mit dem Sie jedes Versprechen umschließen können. Zum Beispiel, um Netzwerkanforderungen zu behandeln usw. Die Unterschrift sieht so aus: Man kann sich andere vielversprechende Beispiele für verschiedene reale Situationen vorstellen, wie das Warten in einer Arztpraxis, die Bestellung von Speisen in einem Restaurant, die Herausgabe eines Buches in einer Bibliothek, unter anderem. Alle beinhalten eine Art Versprechen. Beispiele bringen uns jedoch nur so weit. Reden ist billig, also sehen wir uns den Code an. Darüber hinaus gibt die async-Funktion selbst auch ein Versprechen zurück, das aufgelöst wird, wenn die Ausführung des Funktionstexts abgeschlossen ist.

Hier ist Promise.all die Reihenfolge der gehaltenen Versprechen. Das erste Versprechen im Array wird in das erste Element des Ausgabe-Arrays aufgelöst, das zweite Versprechen ist ein zweites Element im Ausgabe-Array usw. Zuerst erstellen wir eine Verzögerungsfunktion, die ein Versprechen zurückgibt. Das zurückgegebene Versprechen wird nach der angegebenen Anzahl von Sekunden aufgelöst. Hier ist seine Implementierung — Um sicherzustellen, dass Versprechen nicht sofort gefeuert werden, sondern faul bewertet werden, wickeln wir sie in Funktionen ein. Ein Beispiel dafür wird uns später sehen. Wir verwenden die cancel.then()-Methode, um den Abbruch und die Ressourcenbereinigung zu verarbeiten. Dies wird nur ausgeführt, wenn das Versprechen abgebrochen wird, bevor es eine Chance hat, es zu lösen. Wenn Sie zu spät absagen, haben Sie Ihre Chance verpasst. Dieser Zug hat den Bahnhof verlassen.

Beachten Sie auch die Zeile 15. Wir werfen einen Fehler in der .then. Das bedeutet, dass das aktuelle Versprechen abgelehnt wird und im nächsten .catch-Handler gefangen wird. Daher wird ein Fehler abgefangen. Ein .catch selbst wird jedoch immer als Versprechen aufgelöst und nicht abgelehnt (es sei denn, Sie werfen absichtlich einen Fehler aus). Aus diesem Grund wird die .then following .catch ausgeführt. Das heißt, anstatt einen Funktionsverweis als Argument für asyncFunc bereitzustellen (wie bei Rückrufen), gibt asyncFunc Ihnen sofort ein Versprechen zurück, und Sie geben dann die Aktion an, die ausgeführt werden soll, wenn die asynchrone Aufgabe dieses Versprechen abschließt (durch die damalige Methode). Ein Versprechen ist ein Objekt, das synchron von einer asynchronen Funktion zurückgegeben werden kann. Es wird in einem von 3 möglichen Zuständen sein: In diesem Beispiel verwenden wir eine Funktion, um unser Versprechen zu umschließen, so dass es nicht sofort ausgeführt wird. Die Verzögerungsfunktion akzeptiert die Zeit in Millisekunden als Parameter. Die Executor-Funktion hat aufgrund des Verschlusses Zugriff auf den ms-Parameter. Es enthält auch ein setTimeout, das die Resolve-Funktion aufruft, nachdem ms Millisekunden verstreichen, wodurch das Versprechen effektiv aufgelöst wird.

Hier ist ein Beispiel Verwendung — Hinzufügen .cancel() macht das Versprechen nicht standard, aber es verstößt auch gegen eine andere Regel von Versprechen: Nur die Funktion, die das Versprechen erstellt sollte in der Lage sein, zu lösen, abzulehnen oder zu stornieren das Versprechen. Das Aufdecken von Unterbrechungen, die eine Kapselung erhalten, und ermutigt Menschen, Code zu schreiben, der das Versprechen an Orten manipuliert, die nichts darüber wissen sollten. Vermeiden Sie Spaghetti und gebrochene Versprechen. Ausgabe 1 tritt auf, wenn das Versprechen regelmäßig aufgelöst wird (mit der Resolve-Funktion). Dadurch wird die onFulfilled-Handlerfunktion mit dem aufgelösten Wert ausgeführt. In diesem Abschnitt vergleichen wir Versprechungen und Beobachtbare nebeneinander und heben deren Unterschiede und Ähnlichkeiten hervor. Beachten Sie, dass Versprechen sowohl einen Erfolg als auch einen Fehlerhandler haben, und es ist sehr üblich, Code zu sehen, der dies tut: Native JavaScript-Versprechen machen versprechen zunichte. Stattdessen wird erwartet, dass Sie das Versprechen als BlackBox behandeln. Nur die Funktion, die für die Erstellung des Versprechens verantwortlich ist, hat Kenntnis vom Versprechensstatus oder Zugriff auf Auflösung oder Ablehnung.