Node.js-те Event Loop моделіндегі оқиға өңдеу циклі қалай құрылымдалған?
sobes.tech AI
AI-дан жауап
Node.js-те Event Loop — бұл ортақ бір ағынды табиғаты болғанымен, блоктамайтын операцияларды орындауға мүмкіндік беретін механизм.
Оқиғалар өңдеу циклінің негізгі кезеңдері:
-
Timers:
setTimeoutжәнеsetIntervalкөмегімен жоспарланған колбектер орындалады, егер олардың уақыты өткен болса. -
Pending Callbacks: кейбір жүйелік колбектерді өңдеу.
-
Idle, Prepare: Node.js ішкі операциялары.
-
Poll: жаңа I/O оқиғаларын алу; дайын болған I/O колбектерін орындау.
-
Check:
setImmediateарқылы жоспарланған колбектерді орындау. -
Close Callbacks: сокеттердің және басқа ресурстардың жабылуын өңдеу.
Цикл қайталанады, оқиғалар кезегін тексеріп, тиісті колбектерді шақырады. Егер кезек бос болса, Event Loop жаңа оқиғаларды күтеді немесе аяқталады.
Мысал:
setTimeout(() => console.log('timeout'), 0);
setImmediate(() => console.log('immediate'));
console.log('start');
Шығу нәтижесі:
start
immediate
timeout
Өйткені setImmediate Check кезеңінде шақырылады, ал setTimeout келесі циклдің Timers кезеңінде.