Sobes.tech
Junior — Middle

Kas saaksite selgitada sündmuste töötlemise tsükli tööpõhimõtet asünkroonsetes süsteemides?

sobes.tech AI

Vastus AI-lt

Sündmuste (event loop) tsükkel asünkroonsetes süsteemides nagu Node.js vastutab asünkroonsete operatsioonide täitmise eest ilma peamist voogu blokeerimata.

Tööpõhimõte:

  1. Kõik ajakulu nõudvad operatsioonid (näiteks failide lugemine, võrgupäringud) saadetakse sündmuste järjekorda.
  2. Sündmuste tsükkel kontrollib seda järjekorda pidevalt ja, kui operatsioon lõpeb, kutsub välja vastava callbacki või töötleja.
  3. Peamine voog ei ole blokeeritud, see jätkab järgmise koodi täitmist kuni lõpetatud sündmuste ilmumiseni.

See võimaldab tõhusalt kasutada ressursse ja töödelda paljusid operatsioone paralleelselt, vaatamata Node.js ühe lõime olemusele.

Näide:

console.log('Algus');
setTimeout(() => {
  console.log('Asünkroonne sündmus');
}, 1000);
console.log('Lõpp');

Väljund on:

Algus
Lõpp
Asünkroonne sündmus

Sest setTimeout asetab funktsiooni sündmuste järjekorda ja tsükkel kutsub selle hiljem välja.