Sobes.tech
Back to questions
Middle+
5

Расскажите про Event Loop: в каком порядке выполняются синхронный код, микротаски и макротаски?

Companies where asked
Лига Цифровой ЭкономикиЛига Цифровой Экономики

Answer from AI

sobes.tech AI

Event Loop — это механизм в JavaScript, который управляет выполнением кода, обработкой событий и асинхронных операций.

Порядок выполнения:

  1. Синхронный код выполняется сразу, по порядку, в основном потоке.
  2. После выполнения синхронного кода выполняются микротаски (microtasks). К микротаскам относятся, например, промисы (Promise.then), process.nextTick в Node.js.
  3. Затем выполняются макротаски (macrotasks), такие как обработчики событий, таймеры (setTimeout, setInterval), сетевые запросы.

Цикл повторяется: после каждой макротаски Event Loop проверяет очередь микротасков и выполняет их все перед переходом к следующей макротаске.

Пример:

console.log('Синхронный код');

setTimeout(() => console.log('Макротаска (setTimeout)'), 0);

Promise.resolve().then(() => console.log('Микротаска (Promise)'));

console.log('Синхронный код 2');

Вывод будет:

Синхронный код
Синхронный код 2
Микротаска (Promise)
Макротаска (setTimeout)

Это демонстрирует, что микротаски выполняются сразу после синхронного кода, но до макротасок.