> Какой механизм браузера отвечает за порядок выполнения микротасков и макротасков в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: EvApps

Стек: JavaScript

> Пример ответа

За порядок выполнения микротасков и макротасков отвечает Event Loop (цикл событий) браузера, а точнее его внутренняя логика, реализованная в движке JavaScript (например, V8). Event Loop постоянно проверяет, не пуст ли стек вызовов, и управляет двумя очередями:

  1. Макротаски (macrotasks): setTimeout, setInterval, I/O, события UI (клики, рендеринг). Они попадают в очередь макротасков.
  2. Микротаски (microtasks): Promise.then/catch/finally, MutationObserver, queueMicrotask. Они попадают в очередь микротасков.

Правило выполнения: Event Loop сначала обрабатывает один макротаск (берёт его из очереди), затем выполняет все микротаски из очереди (пока она не опустеет), и только после этого переходит к следующему макротаску. Если во время выполнения микротасков добавляются новые микротаски, они тоже будут выполнены до перехода к следующему макротаску. Это гарантирует, что микротаски имеют приоритет над макротасками и выполняются "атомарно" между макротасками.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью