Junior — Middle
Կարող եք բացատրել իրադարձությունների մշակման ցիկլի աշխատանքային սկզբունքը ասինխրոն համակարգերում?
sobes.tech AI
Պատասխան AI-ից
Եվենթ լուպը (event loop) ասինխրոն համակարգերում, ինչպիսիք են Node.js-ը, պատասխանատու է ասինխրոն օպերացիաների կատարման կառավարելու համար՝ առանց հիմնական հոսքը խոչընդոտելու:
Աշխատանքի սկզբունքը՝
- Ամենա ժամանակատար գործողությունները (օրինակ՝ ֆայլի ընթերցում, ցանցային հարցումներ) ուղարկվում են իրադարձությունների հերթին:
- Երգի ցիկլը մշտապես ստուգում է այս հերթը և, երբ գործողությունը ավարտվում է, կանչում համապատասխան callback-ը կամ մշակողը:
- Հիմնական հոսքը չի խոչընդոտվում, այն շարունակում է կատարել հաջորդ կոդը՝ մինչև ավարտված իրադարձությունները հայտնվելը:
Այսպիսով, արդյունավետորեն օգտագործելով ռեսուրսները և միաժամանակ բազմաթիվ գործողություններ մշակելով՝ չնայած Node.js-ի միակամար բնույթին:
Օրինակ՝
console.log('Սկիզբ');
setTimeout(() => {
console.log('Ասինխրոն իրադարձություն');
}, 1000);
console.log('Ավարտ');
Արդյունքը կլինի՝
Սկիզբ
Ավարտ
Ասինխրոն իրադարձություն
Քանի որ setTimeout-ը տեղադրում է ֆունկցիան իրադարձությունների հերթում, իսկ երգի ցիկլը այն կանչում է ավելի ուշ։