Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: event, loop

Какие очереди существуют в Event Loop и чем они отличаются?

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

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

В Event Loop существуют несколько очередей задач.
Основные из них — очередь macrotask и очередь microtask.
Они отличаются приоритетом выполнения и типами задач.
Microtask выполняются раньше macrotask.

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

Асинхронная модель JavaScript построена вокруг Event Loop и очередей задач.

Определение

Event Loop — это механизм, который управляет выполнением синхронного кода и асинхронных задач в JavaScript.

Основные очереди

В процессе работы используются:

  • Macrotask queue

  • Microtask queue

Очередь macrotask

В неё попадают задачи:

  • setTimeout

  • setInterval

  • события браузера

  • I/O операции

Каждая macrotask выполняется за один проход цикла.

Очередь microtask

Эта очередь имеет более высокий приоритет. В неё попадают:

  • Promise.then

  • queueMicrotask

  • MutationObserver

Все microtask выполняются до перехода к следующей macrotask.

Порядок выполнения

Общий порядок выглядит так:

  1. Синхронный код

  2. Все microtask

  3. Одна macrotask

  4. Отрисовка UI

  5. Следующая итерация цикла

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

Разница между очередями заключается в приоритете. Microtask всегда выполняются раньше macrotask, что важно учитывать при работе с асинхронным кодом.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

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

#event

#loop

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