Sobes.tech
Back to questions
Middle
1

Расскажи про Event Loop в JavaScript.

Companies where asked
WildberriesWildberries

Answer from AI

sobes.tech AI

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

Когда выполняется код, синхронные операции идут сразу, а асинхронные (например, setTimeout, промисы, события) помещаются в соответствующие очереди (callback queue, microtask queue). Event Loop постоянно проверяет стек вызовов — если он пуст, берёт задачи из очередей и выполняет их.

Особенность в том, что microtasks (например, обработчики промисов) имеют приоритет и выполняются сразу после текущего стека, до того, как Event Loop перейдёт к следующей задаче из callback queue.

Пример:

console.log('Start');

setTimeout(() => console.log('Timeout'), 0);

Promise.resolve().then(() => console.log('Promise'));

console.log('End');

Вывод будет:

Start
End
Promise
Timeout

Это потому, что промисы попадают в microtask queue и выполняются раньше, чем задачи из setTimeout.