Sobes.tech
Junior — Middle

Node.js-те Event Loop моделіндегі оқиға өңдеу циклі қалай құрылымдалған?

sobes.tech AI

AI-дан жауап

Node.js-те Event Loop — бұл ортақ бір ағынды табиғаты болғанымен, блоктамайтын операцияларды орындауға мүмкіндік беретін механизм.

Оқиғалар өңдеу циклінің негізгі кезеңдері:

  1. Timers: setTimeout және setInterval көмегімен жоспарланған колбектер орындалады, егер олардың уақыты өткен болса.

  2. Pending Callbacks: кейбір жүйелік колбектерді өңдеу.

  3. Idle, Prepare: Node.js ішкі операциялары.

  4. Poll: жаңа I/O оқиғаларын алу; дайын болған I/O колбектерін орындау.

  5. Check: setImmediate арқылы жоспарланған колбектерді орындау.

  6. Close Callbacks: сокеттердің және басқа ресурстардың жабылуын өңдеу.

Цикл қайталанады, оқиғалар кезегін тексеріп, тиісті колбектерді шақырады. Егер кезек бос болса, Event Loop жаңа оқиғаларды күтеді немесе аяқталады.

Мысал:

setTimeout(() => console.log('timeout'), 0);
setImmediate(() => console.log('immediate'));
console.log('start');

Шығу нәтижесі:

start
immediate
timeout

Өйткені setImmediate Check кезеңінде шақырылады, ал setTimeout келесі циклдің Timers кезеңінде.