dedlfix: Promises & Callbacks

Beitrag lesen

Tach!

Promises fügen nichts neues hinzu, was man nicht auch schon vorher bei asynchronen Aufgaben mit Callbacks hätte lösen können.

Weiß nicht so recht. Das Neue ist die Idee, den zukünftigen erwarteten Wert als Objekt zu repräsentieren und sich daran registrieren zu können. Dieses Objekt kann man herumreichen und sich daran für den Werteempfang registrieren. Callbacks alleine sind deutlich weniger. Will man all das tun, was Promises ermöglichen, programmiert man sie letztlich nach. Dann heißen sie vielleicht Deferred, Delay, Eventual oder Future, aber der Effekt ist ähnlich :)

Neu sind natürlich einige interessante Details, aber wenn man die nicht verwendet, ist es nicht viel mehr als ein asynchroner Callback. Neu/anders ist unter anderem, dass man auch an einem bereits erledigten Promise die done/then-Methode aufrufen kann, und die dort übergebene Callback-Funktion aufgerufen wird (in dem Fall sofort). Hängt man sich hingegen an einen Eventhandler, zum Beispiel vom XMLHttpRequest, dann wird der nicht mehr ausgelöst, wenn das Ereignis schon längst Geschichte ist.

dedlfix.