Sobes.tech
Назад к вопросам
Middle+
3

Расскажи про Event Loop: как он работает, что такое микрозадачи и макрозадачи?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

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

Он работает так:

  • Сначала выполняется весь синхронный код.
  • Затем Event Loop проверяет очередь микрозадач (microtasks) и выполняет их по очереди.
  • После этого выполняются макрозадачи (macrotasks) из соответствующей очереди.

Микрозадачи — это задачи с более высоким приоритетом, которые выполняются сразу после текущего синхронного кода и перед макрозадачами. Примеры микрозадач: промисы (Promise.then/catch/finally), MutationObserver.

Макрозадачи — это задачи с более низким приоритетом, которые выполняются после микрозадач. Примеры макрозадач: setTimeout, setInterval, I/O операции, события UI.

Пример:

console.log('start');
setTimeout(() => console.log('timeout'), 0);
Promise.resolve().then(() => console.log('promise'));
console.log('end');

Вывод будет:

start
end
promise
timeout

Потому что микрозадачи (promise) выполняются раньше макрозадач (setTimeout).