Что такое Event Loop

Ответ

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

Как это работает:

  1. Синхронный код попадает в Call Stack и выполняется сразу.
  2. Асинхронные операции (setTimeout, fetch и т.д.) передаются Web API, а их коллбэки попадают в Callback Queue.
  3. Когда Call Stack пуст, Event Loop берет коллбэки из Callback Queue и помещает их в Call Stack для выполнения.
console.log('Start'); // 1. Синхронный код

setTimeout(() => {
  console.log('Timeout'); // 3. Асинхронный коллбэк
}, 0);

console.log('End'); // 2. Синхронный код
// Output: Start, End, Timeout

Микро- и макрозадачи:

  • Микрозадачи (Promise, process.nextTick) выполняются сразу после текущего таска.
  • Макрозадачи (setTimeout, setInterval) — в следующей итерации Event Loop.