JavaScript · Senior · Frage 59 von 75

Warum kann dieser Code die Seite einfrieren, obwohl er Promises nutzt?

function loop() { Promise.resolve().then(loop); }
loop();
Antwort zeigen

Richtige Antwort: Jede Microtask plant die nächste, also wird nie gerendert

Erklärung

Der Browser rendert nur zwischen Macrotasks, nachdem die Microtask-Warteschlange leer ist. Mit setTimeout, MessageChannel oder scheduler.yield() gibt man dem Rendering eine Chance.

Zum Weiterlesen

Fehler in der Frage

JavaScript · Senior · Frage 59

Teste dich selbst

Mach den Test JavaScript · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen