Seleccionar página

ablehnung(obj) Ihr Versprechen wird mit obj abgelehnt. Für Konsistenz und Debugging (z. B. Stapelablaufverfolgungen) sollte obj eine Instanz von Error sein. Alle Fehler, die im Konstruktorrückruf ausgelöst werden, werden implizit an reject(übergeben. Obwohl, wie ich bereits erwähnte, jQuerys Verzögerte ein bisschen … Hilfreich. Glücklicherweise können Sie sie auf Standardversprechen umstellen, was sich lohnt, so schnell wie möglich zu tun: Dies bedeutet, dass es nützlich ist, all Ihre vielversprechenden Arbeiten innerhalb des Versprechenskonstruktor-Rückrufs zu erledigen, sodass Fehler automatisch erfasst werden und zu Ablehnungen werden. Auch wenn es aufgabe ist, zu entscheiden, welcher Thread für die Auftragsausführung verwendet werden soll und über das Ergebnis benachrichtigt werden soll, aber manchmal benötigen Sie als Consumer eine Möglichkeit, explizit den Thread anzugeben, für den Sie das Ergebnis erhalten möchten: Dies war nicht nur der To-Go-Ansatz für die asynchrone Ausführung, sondern auch ein Kernmuster und eine Konvention seines Ökosystems. Node.js eröffnete eine neue Ära des Schreibens von JavaScript in einer anderen Umgebung – auch außerhalb des Webs.

Infolgedessen waren andere asynchrone Situationen möglich, wie das Erstellen neuer Verzeichnisse oder das Schreiben von Dateien. JavaScript-Versprechen begannen im DOM als «Futures», umbenannt in «Versprechen» und wechselten schließlich zu JavaScript. Sie in JavaScript statt in der DOM zu haben, ist großartig, da sie in JS-Kontexten verfügbar sind, die nicht browserfrei sind, z. B. Node.js (ob sie sie in ihren Kern-APIs verwenden, ist eine andere Frage). Trotz dieser Schwächen, jQuery offiziell gemacht JavaScript Versprechen Mainstream, und bessere Stand-alone-Versprechen Bibliotheken wie Q, When, und Bluebird wurde sehr beliebt. Die Implementierungsinkompatibilitäten von jQuery begründeten einige wichtige Klarstellungen in der Versprechensspezifikation, die umgeschrieben und in Promises/A+ Spezifikation umbenannt wurde. Die Versprechungen einer Kette sind wie russische Puppen verschachtelt, aber wie die Spitze eines Stapels geknallt. Das erste Versprechen in der Kette ist am tiefsten verschachtelt und ist das erste, das knallt. Manchmal haben Sie bereits einen Wert und möchten ihn in ein Versprechen umwandeln. Sie können auch manchmal mit einem Wert, der ein Versprechen sein kann oder nicht. Schließlich können Sie feststellen, dass Sie einen Wert haben, der ein Versprechen ist, aber nicht so funktioniert, wie es sollte (z.B.

ein jQuery-Versprechen) und es in ein wahres Versprechen umwandeln möchten. Welches Versprechen auch immer abrechnet (erfüllt oder ablehnt) gewinnt zuerst das Rennen und bestimmt das Ergebnis. Wenn ein nextValue ein Versprechen ist, ist der Effekt ein dynamischer Ersatz. Die Rückkehr bewirkt, dass ein Versprechen geplatzt wird, aber das nächste Value-Versprechen wird an seine Stelle geschoben. Angenommen, die mit «versprechen B» verknüpfte Verschachtelung gibt für die oben gezeigte Verschachtelung einen nächstenWert von «versprechen X» zurück. Die daraus resultierende Verschachtelung würde so aussehen: Frühe Implementierungen von Versprechen und Futures (eine ähnliche / verwandte Idee) begannen bereits in den 1980er Jahren in Sprachen wie MultiLisp und Concurrent Prolog zu erscheinen. Die Verwendung des Wortes «Versprechen» wurde 1988 von Barbara Liskov und Liuba Shrira geprägt[1]. Möchten Sie wechseln, je nachdem, ob es eine Ausnahme oder eine Stornierung gibt? Ja, absolut. Ist das die Aufgabe des Versprechens? Meiner Meinung nach, nein, das ist es nicht. Wenn Sie mehrmals in kurzer Zeit auf die Schaltfläche klicken, sehen Sie sogar, dass die verschiedenen Versprechen nacheinander erfüllt werden.

Compártelo si te ha gustado
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies