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

Расскажи про event loop: для чего нужен, как работает

Компании, где спрашивали
Сбермаркетинг

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

sobes.tech AI

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

Для чего нужен: JavaScript однопоточный, но часто нужно выполнять операции, которые занимают время (например, запросы к серверу, таймеры). Event loop позволяет ставить такие задачи в очередь и выполнять их по готовности, обеспечивая отзывчивость приложения.

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

  1. Есть стек вызовов (call stack), где выполняется текущий код.
  2. Есть очередь задач (task queue), куда помещаются колбэки асинхронных операций.
  3. Event loop постоянно проверяет, пуст ли стек вызовов.
  4. Если стек пуст, event loop берёт первую задачу из очереди и помещает её в стек для выполнения.

Это позволяет, например, запускать таймеры или обрабатывать события без блокировки основного потока.

Пример:

console.log('Start');
setTimeout(() => {
  console.log('Timeout');
}, 0);
console.log('End');

Вывод будет:

Start
End
Timeout

Потому что колбэк setTimeout попадает в очередь задач и выполнится после того, как основной код завершится.