Sobes.tech
Back to questions
Junior — Middle
81

Можете объяснить принцип работы Event Loop в асинхронной модели JavaScript?

Companies where asked
WildberriesWildberries
AndersenAndersen
Pashapay
HamkorBank
ЯндексЯндекс

Answer from AI

sobes.tech AI

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

Принцип работы:

  1. Call Stack (стек вызовов) — сюда помещаются функции для выполнения.
  2. Web APIs — браузерные или средовые API, которые обрабатывают асинхронные операции (например, setTimeout, fetch).
  3. Callback Queue (очередь обратных вызовов) — сюда попадают завершённые асинхронные задачи.

Когда стек вызовов пуст, Event Loop берет первый колбэк из очереди и помещает его в стек для выполнения. Так обеспечивается непрерывная обработка событий без блокировки.

Пример:

console.log('Начало');
setTimeout(() => {
  console.log('Асинхронный код');
}, 0);
console.log('Конец');

Вывод будет:

Начало
Конец
Асинхронный код

Даже с задержкой 0, setTimeout ставит колбэк в очередь, который выполнится после основного кода.