Sobes.tech
Middle+

Mesélj az eseményhurkról: mi ez, hogyan működik?

sobes.tech MI

Válasz az MI-től

Event Loop — ez egy mechanizmus JavaScript-ben és más egyszálú környezetekben, amely lehetővé teszi az aszinkron műveletek feldolgozását anélkül, hogy blokkolná a fő szálat.

Hogyan működik:

  1. Van egy hívásverem (call stack), ahová a végrehajtandó függvények kerülnek.
  2. Az aszinkron műveletek (pl. időzítők, hálózati kérések) a befejezésük után a feladatok sorába (task queue) küldik a callbackjeiket.
  3. Az Event Loop folyamatosan ellenőrzi, hogy a hívásverem üres-e. Ha igen, kiválasztja az első feladatot a sorból, és beteszi a verembe a végrehajtáshoz.

Így még aszinkron műveletek esetén is a kód szekvenciálisan fut, anélkül, hogy blokkolná a felhasználói felületet vagy más folyamatokat.

Példa:

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

A kimenet:

Start
End
Timeout

Mert a setTimeout callbackje a feladatok sorába kerül, és a verem kiürülése után fut le.