Sobes.tech
Middle+

Разкажи за Event Loop: какво е, как работи?

sobes.tech AI

Отговор от AI

Event Loop — това е механизъм в JavaScript и други среди с един поток, който позволява обработката на асинхронни операции без блокиране на основния поток.

Как работи:

  1. Има стек за извиквания (call stack), в който се поставят функциите за изпълнение.
  2. Асинхронните операции (например таймери, мрежови заявки) изпращат своите callback функции към опашката с задачи (task queue) след завършване.
  3. Event Loop постоянно проверява дали стекът за извиквания е празен. Ако е, взема първата задача от опашката и я поставя в стека за изпълнение.

По този начин, дори при асинхронни операции, кодът се изпълнява последователно, без да блокира UI или други процеси.

Пример:

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

Изходът ще бъде:

Start
End
Timeout

Защото callback-ът на setTimeout попада в опашката с задачи и ще бъде изпълнен след като стекът за извиквания се освободи.