JavaScript · Senior · Frage 2 von 75
Was passiert mit der Seite?
function loop() {
Promise.resolve().then(loop);
}
loop();- 1
RangeError: Maximum call stack size exceededwegen der Rekursion - 2Nichts Schlimmes: der Browser schafft es, zwischen Microtasks Frames zu zeichnen
- 3Die Seite friert ein: Microtasks kommen endlos dazu, und gerendert wird nie
Antwort zeigen
Richtige Antwort: Die Seite friert ein: Microtasks kommen endlos dazu, und gerendert wird nie
Erklärung
Der Stack wächst nicht (jeder Aufruf ist eine eigene Microtask), also gibt es keinen Überlauf. Aber die Microtask-Warteschlange leert sich nie, und die Event Loop kommt nie zum Rendering oder zu Events. Mit setTimeout(loop) bliebe die Seite reaktionsfähig.