Что такое Event Loop
Вот как можно кратко объяснить что такое Event Loop, чтобы собеседующий понял, что ты в теме:
Event Loop — это механизм, который позволяет JavaScript выполнять асинхронный код в однопоточной модели. Он следит за очередями задач и выполняет их, когда основной поток освобождается. Сначала выполняются микрозадачи (промисы, MutationObserver, queueMicrotask), потом макрозадачи (setTimeout, setInterval, события).
Основные шаги работы Event Loop:
1. Выполнение синхронного кода
Всё, что написано напрямую в скрипте, попадает в Call Stack (стек вызовов) и выполняется.
2. Асинхронные операции (таймеры, fetch, промисы)
Когда встречается асинхронная операция, она откладывается и регистрируется через Web APIs (в браузере или Node.js).
3. Очистка Call Stack
Когда весь синхронный код выполнен и стек пуст, Event Loop:
• Сначала берёт задачи из очереди микрозадач (Microtasks Queue) — сюда попадают .then(), catch(), finally(), queueMicrotask.
• Затем из очереди макрозадач (Macrotasks Queue) — setTimeout, setInterval, setImmediate и события (onclick и т.п.).
4. Цикл повторяется
Процесс продолжается, пока есть задачи для выполнения.
