Middle+
Разкажи за Event Loop: какво е, как работи?
sobes.tech AI
Отговор от AI
Event Loop — това е механизъм в JavaScript и други среди с един поток, който позволява обработката на асинхронни операции без блокиране на основния поток.
Как работи:
- Има стек за извиквания (call stack), в който се поставят функциите за изпълнение.
- Асинхронните операции (например таймери, мрежови заявки) изпращат своите callback функции към опашката с задачи (task queue) след завършване.
- Event Loop постоянно проверява дали стекът за извиквания е празен. Ако е, взема първата задача от опашката и я поставя в стека за изпълнение.
По този начин, дори при асинхронни операции, кодът се изпълнява последователно, без да блокира UI или други процеси.
Пример:
console.log('Start');
setTimeout(() => {
console.log('Timeout');
}, 0);
console.log('End');
Изходът ще бъде:
Start
End
Timeout
Защото callback-ът на setTimeout попада в опашката с задачи и ще бъде изпълнен след като стекът за извиквания се освободи.