Sobes.tech
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).

Порядок выполнения задач следующий:

  1. Сначала выполняется весь синхронный код, который попадает в call stack.
  2. После освобождения стека Event Loop проверяет очередь микротасков (microtask queue), куда попадают, например, промисы (Promise.then/catch/finally) и MutationObserver. Все микротаски выполняются до перехода к следующему этапу.
  3. Затем 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).