Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: microtask, queue

Что произойдет, если очередь microtask будет заполняться бесконечно?

Вопрос проверяет понимание приоритетов Event Loop и их влияния на производительность и UI.

Короткий ответ

Если очередь microtask постоянно пополняется, Event Loop не перейдёт к macrotask.
В результате UI не будет перерисовываться.
Приложение может «зависнуть» без явных ошибок.
Это называется starvation macrotask.

Длинный ответ

Microtask имеют абсолютный приоритет в рамках одной итерации Event Loop.

Как работает проблема

Алгоритм Event Loop устроен так:

  • выполняется синхронный код

  • выполняются все microtask

  • только потом выполняется macrotask

Если каждая microtask добавляет новую microtask:

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

Что происходит в этом случае

В результате:

  • очередь microtask никогда не опустеет

  • macrotask не начнут выполняться

  • отрисовка UI не произойдёт

  • браузер станет неотзывчивым

Почему это опасно

Такая ситуация:

  • трудно отлаживается

  • не вызывает ошибок

  • выглядит как «заморозка» страницы

Как избежать

На практике:

  • не создают рекурсивные microtask

  • используют setTimeout для разрыва цикла

  • следят за логикой Promise.then

Краткий вывод

Бесконечные microtask могут полностью заблокировать приложение. Приоритет microtask нужно использовать осознанно.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#microtask

#queue

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию