DanLevy.net

Fallstricke in Promise‑Dokumentation

Vermeidung von Problemen mit gängigen Dokumentationen

Hero image for Fallstricke in Promise‑Dokumentation

Spotting Promise Anti-Patterns in google search results, and popular libraries.

craig-whitehead-433328-unsplash.webp

Ich fange mit einem Geständnis an: Ich habe dieselben „Anti‑Patterns“ geschrieben, die ich unten kritisiere, und das tun vermutlich viele JS‑Entwickler ebenfalls. Nichts, was ich hier darstelle, ist persönlich gemeint oder richtet sich gegen die ursprünglichen Autoren. Ich führe lediglich einen Code‑Review gängiger Muster durch – ich hoffe, damit meine Prioritäten und mein kritisches Denkverfahren zu vermitteln.

Hoffentlich können Sie nach dem Durcharbeiten dieses Projekts die Warnsignale schlechter Promises erkennen.

  1. CallbackHell.com
  2. StrongLoop
  3. RisingStack
  4. Q Library

CallbackHell.com

CREDIT: http://callbackhell.com/ CallbackHell.com


StrongLoop

CREDIT: https://strongloop.com/strongblog/node-js-callback-hell-promises-generators/ strong loop


RisingStack

CREDIT: https://blog.risingstack.com/node-js-async-best-practices-avoiding-callback-hell-node-js-at-scale/ Das ist ein ziemlich solides Stück. Ich habe nur eine Anmerkung:

Rising Stack


Q Library

CREDIT: https://github.com/kriskowal/q

Die Q‑Bibliothek ist eine der am häufigsten genutzten und ältesten, die mit „Promises“ in Verbindung gebracht wird. Deshalb leidet sie unter veralteten Beispielen und dem Zwang, Rückwärtskompatibilität zu erhalten.
Ich sage „mit ‚Promises‘ in Verbindung gebracht“, weil ich das Gefühl habe, Q dreht sich eigentlich um das deferred‑Muster.

Sie mag Promises ähneln, aber ich behaupte, sie ist es nicht. Sie hat aus völlig falschen Gründen eine viel zu große Oberfläche. Außerdem ist die Namenskonvention inkonsistent abgekürzt, was das Einprägen der API erschwert. Methoden wie when und done sind überflüssig.

Bottom line: Das deferred‑Muster ist ein schmerzhaftes Anti‑Pattern – es liefert praktisch keinen Mehrwert gegenüber dem üblichen Callback‑Ansatz.

q first example

q xmlHTTP deferred anti-pattern

Bitte schauen Sie sich das Begleit‑Github‑Projekt zu diesem Artikel an (und geben Sie ihm ein Sternchen): Escape From Callback Mountain

Projektziel: Forschung & Entwicklung besserer funktionaler Sprachmuster in JavaScript.