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:
- On olemas kutsungite virn (call stack), kuhu paigutatakse täitmiseks funktsioonid.
- Asünkroonsed operatsioonid (näiteks ajastid, võrgupäringud) saadavad oma tagasikutsed (callbackid) tööjärku (task queue) pärast nende lõpetamist.
- 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.