Sobes.tech
Middle+

Räägi mulle Event Loopist: mis see on, kuidas see töötab?

sobes.tech AI

Vastus AI-lt

Event Loop — see on mehhanism JavaScriptis ja teistes ühekordsetes keskkondades, mis võimaldab töödelda asünkroonseid operatsioone ilma peamist voogu blokeerimata.

Kuidas see töötab:

  1. On olemas kutsungite virn (call stack), kuhu paigutatakse täitmiseks funktsioonid.
  2. Asünkroonsed operatsioonid (näiteks ajastid, võrgupäringud) saadavad oma tagasikutsed (callbackid) tööjärku (task queue) pärast nende lõpetamist.
  3. Event Loop kontrollib pidevalt, kas kutsungite virn on tühi. Kui on, võtab ta esimese ülesande järjekorrast ja asetab selle täitmiseks virna.

Nii et isegi asünkroonsete operatsioonide korral täidetakse kood järjestikuliselt, ilma UI või teiste protsesside blokeerimiseta.

Näide:

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

Väljund on:

Start
End
Timeout

Sest setTimeout callback jõuab tööjärku ja täidetakse pärast kutsungite virna vabastamist.