Sobes.tech
Back to questions
Senior
3

Объясните event loop: компоненты и как они работают вместе. Объясните macro и micro задачи.

Companies where asked
Zuru Tech

Answer from AI

sobes.tech AI

Event loop — это механизм в Node.js, который позволяет выполнять неблокирующий ввод-вывод и обрабатывать асинхронные операции.

Основные компоненты event loop:

  • Call Stack — стек вызовов, где выполняется текущий код.
  • Event Queue (Task Queue) — очередь макротасков, куда помещаются колбэки после завершения асинхронных операций.
  • Microtask Queue — очередь микротасков, куда попадают промисы и некоторые другие задачи.

Как они работают вместе:

  1. Выполняется код из Call Stack.
  2. Когда стек пуст, event loop сначала обрабатывает все микротаски из Microtask Queue.
  3. После этого берётся одна макротаска из Event Queue и выполняется.
  4. Цикл повторяется.

Разница между макро- и микротасками:

  • Макротаски (macro tasks) — это, например, обработчики событий, setTimeout, setInterval, I/O операции.
  • Микротаски (micro tasks) — это промисы (Promise.then/catch/finally), process.nextTick.

Микротаски имеют более высокий приоритет и выполняются сразу после текущего кода и перед следующей макротаской, что позволяет более эффективно управлять асинхронностью.