Back to questions
Simbirsoft
Middle
4
Расскажи про Event Loop в JavaScript/браузере.
Companies where asked
Answer from AI
sobes.tech AI
Event Loop — это механизм в JavaScript и браузерах, который позволяет обрабатывать асинхронные операции без блокировки основного потока.
JavaScript однопоточный, но благодаря Event Loop он может выполнять задачи асинхронно:
- Основной поток выполняет синхронный код.
- Асинхронные операции (таймеры, сетевые запросы, события) отправляются в Web APIs.
- Когда асинхронная операция завершается, её callback помещается в очередь задач (task queue).
- Event Loop постоянно проверяет, свободен ли стек вызовов (call stack).
- Если стек пуст, Event Loop берет первый callback из очереди задач и помещает его в стек для выполнения.
Таким образом, Event Loop обеспечивает неблокирующее выполнение кода, позволяя браузеру оставаться отзывчивым.
Пример:
console.log('Start');
setTimeout(() => {
console.log('Timeout callback');
}, 0);
console.log('End');
Вывод будет:
Start
End
Timeout callback
Потому что callback из setTimeout попадает в очередь и выполнится после завершения синхронного кода.