Sobes.tech
Middle+

Rozprávaj o Event Loop: čo to je, ako funguje?

sobes.tech AI

Odpoveď od AI

Event Loop — je mehanizmus v JavaScripte a ďalších prostrediach s jedným vláknom, ktorý umožňuje spracovanie asynchrónnych operácií bez blokovania hlavného vlákna.

Ako to funguje:

  1. Existuje zásobník volaní (call stack), do ktorého sa umiestňujú funkcie na vykonanie.
  2. Asynchrónne operácie (napríklad časovače, sieťové požiadavky) po dokončení posielajú svoje callbacky do fronty úloh (task queue).
  3. Event Loop neustále kontroluje, či je zásobník volaní prázdny. Ak áno, vezme prvú úlohu z fronty a vloží ju do zásobníka na vykonanie.

Týmto spôsobom sa aj pri asynchrónnych operáciách kód vykonáva sekvenčne, bez blokovania UI alebo iných procesov.

Príklad:

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

Výstup bude:

Start
End
Timeout

Pretože callback setTimeout sa dostáva do fronty úloh a bude vykonaný po uvoľnení zásobníka volaní.