Back to questions
Middle
6
Что такое Event Loop в JavaScript? В каком порядке выполняются задачи?
Companies where asked
BCraft
Answer from AI
sobes.tech AI
Event Loop в JavaScript — это механизм, который позволяет выполнять асинхронный код, не блокируя основной поток выполнения. Он работает в окружении с однопоточным исполнением, обрабатывая очередь задач (task queue) и стек вызовов (call stack).
Порядок выполнения задач следующий:
- Сначала выполняется весь синхронный код, который попадает в call stack.
- После освобождения стека Event Loop проверяет очередь микротасков (microtask queue), куда попадают, например, промисы (Promise.then/catch/finally) и MutationObserver. Все микротаски выполняются до перехода к следующему этапу.
- Затем Event Loop обрабатывает очередь макротасков (task queue), куда попадают, например, setTimeout, setInterval, I/O события.
Таким образом, порядок: синхронный код → микротаски → макротаски → повторение цикла.
Пример:
console.log('start');
setTimeout(() => console.log('timeout'), 0);
Promise.resolve().then(() => console.log('promise'));
console.log('end');
Вывод будет:
start
end
promise
timeout
Потому что микротаски (промисы) выполняются раньше макротасков (setTimeout).