Sobes.tech
Junior — Middle

Կարող եք բացատրել իրադարձությունների մշակման ցիկլի աշխատանքային սկզբունքը ասինխրոն համակարգերում?

sobes.tech AI

Պատասխան AI-ից

Եվենթ լուպը (event loop) ասինխրոն համակարգերում, ինչպիսիք են Node.js-ը, պատասխանատու է ասինխրոն օպերացիաների կատարման կառավարելու համար՝ առանց հիմնական հոսքը խոչընդոտելու:

Աշխատանքի սկզբունքը՝

  1. Ամենա ժամանակատար գործողությունները (օրինակ՝ ֆայլի ընթերցում, ցանցային հարցումներ) ուղարկվում են իրադարձությունների հերթին:
  2. Երգի ցիկլը մշտապես ստուգում է այս հերթը և, երբ գործողությունը ավարտվում է, կանչում համապատասխան callback-ը կամ մշակողը:
  3. Հիմնական հոսքը չի խոչընդոտվում, այն շարունակում է կատարել հաջորդ կոդը՝ մինչև ավարտված իրադարձությունները հայտնվելը:

Այսպիսով, արդյունավետորեն օգտագործելով ռեսուրսները և միաժամանակ բազմաթիվ գործողություններ մշակելով՝ չնայած Node.js-ի միակամար բնույթին:

Օրինակ՝

console.log('Սկիզբ');
setTimeout(() => {
  console.log('Ասինխրոն իրադարձություն');
}, 1000);
console.log('Ավարտ');

Արդյունքը կլինի՝

Սկիզբ
Ավարտ
Ասինխրոն իրադարձություն

Քանի որ setTimeout-ը տեղադրում է ֆունկցիան իրադարձությունների հերթում, իսկ երգի ցիկլը այն կանչում է ավելի ուշ։