Назад к вопросам
Middle
2
Расскажи про event loop: для чего нужен, как работает
Компании, где спрашивали
Сбермаркетинг
Ответ от нейросети
sobes.tech AI
Event loop — это механизм в JavaScript, который позволяет выполнять асинхронный код, не блокируя основной поток.
Для чего нужен: JavaScript однопоточный, но часто нужно выполнять операции, которые занимают время (например, запросы к серверу, таймеры). Event loop позволяет ставить такие задачи в очередь и выполнять их по готовности, обеспечивая отзывчивость приложения.
Как работает:
- Есть стек вызовов (call stack), где выполняется текущий код.
- Есть очередь задач (task queue), куда помещаются колбэки асинхронных операций.
- Event loop постоянно проверяет, пуст ли стек вызовов.
- Если стек пуст, event loop берёт первую задачу из очереди и помещает её в стек для выполнения.
Это позволяет, например, запускать таймеры или обрабатывать события без блокировки основного потока.
Пример:
console.log('Start');
setTimeout(() => {
console.log('Timeout');
}, 0);
console.log('End');
Вывод будет:
Start
End
Timeout
Потому что колбэк setTimeout попадает в очередь задач и выполнится после того, как основной код завершится.