dedlfix: Promises & Callbacks

Beitrag lesen

Tach!

Wie ist das denn dann in JavaScript, wenn ich auf Ergebnis (Future) zugreife? Wird da die Ausführung zugreifenden Programms dann auch solange blockiert, bis es zur Verfügung steht?

Üblicherweise fängt solch eine Verarbeitungskette mit einem asynchronen Request zum Server an. Threads gibt es ja nicht und Promises sind auch kein Ersatz für Threads. Eine weitere Möglichkeit sind, vermute ich, Web Worker, aber die habe ich mir noch nicht angeschaut. Bleiben wir bei XMLHttpRequest (vulgo Ajax). Du startest eine Anforderung und dein dort nachfolgender Code wird ausgeführt. Da blockiert erstmal nichts.

Wenn dein Callback aufgerufen wird, ist ohne Threads natürlich auch keine andere Nebenläufigkeit möglich. Der Callback, beziehungsweise der Handler, der die Antwort vom XMLHttpRequest verarbeitet und dann deinen Callback aufruft, kann auch erst dann ausgeführt werden, wenn nichts anderes läuft. Eine lange Aufgabe, die die Steuerung nicht wieder an die Event Loop zurückgibt, blockiert das System.

dedlfix.