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 — очередь микротасков, куда попадают промисы и некоторые другие задачи.
Как они работают вместе:
- Выполняется код из Call Stack.
- Когда стек пуст, event loop сначала обрабатывает все микротаски из Microtask Queue.
- После этого берётся одна макротаска из Event Queue и выполняется.
- Цикл повторяется.
Разница между макро- и микротасками:
- Макротаски (macro tasks) — это, например, обработчики событий, setTimeout, setInterval, I/O операции.
- Микротаски (micro tasks) — это промисы (Promise.then/catch/finally), process.nextTick.
Микротаски имеют более высокий приоритет и выполняются сразу после текущего кода и перед следующей макротаской, что позволяет более эффективно управлять асинхронностью.