JavaScript · Senior · Запитання 2 з 75
Що станеться зі сторінкою?
function loop() {
Promise.resolve().then(loop);
}
loop();- ✓Правильна відповідь: Сторінка зависне: мікрозадачі додаються нескінченно, рендер не настане
- 2Нічого страшного: між мікрозадачами браузер встигає малювати кадри
- 3Буде
RangeError: Maximum call stack size exceededчерез рекурсію
Пояснення
Стек не росте (кожен виклик - окрема мікрозадача), тому переповнення немає. Але черга мікрозадач ніколи не спорожніє, і event loop не перейде ні до рендеру, ні до подій. Із setTimeout(loop) сторінка лишилася б чутливою.