Middle+
Պատմիր Event Loop-ի մասին՝ դա ինչ է, ինչպես է աշխատում?
sobes.tech AI
Պատասխան AI-ից
Event Loop — դա մեխանիզմ է JavaScript-ում և այլ միակամար միջավայրերում, որը թույլ է տալիս մշակել ասինխրոն օպերացիաները առանց հիմնական հոսքը փակելու:
Ինչպես է աշխատում:
- Կա կանչերի շղթա (call stack), որտեղ տեղադրվում են կատարելու համար նախատեսված ֆունկցիաները:
- Ասինխրոն օպերացիաները (օրինակ՝ ժամացույցներ, ցանցային հարցումներ) իրենց callback-ները ուղարկում են գործերի հերթին (task queue) ավարտվելուց հետո:
- Event Loop-ը մշտապես ստուգում է, արդյոք կանչերի շղթան դատարկ է: Եթե դատարկ է, վերցնում է առաջին գործը հերթից և տեղադրում է շղթայի մեջ կատարելու համար:
Այսպիսով, նույնիսկ ասինխրոն օպերացիաների դեպքում, կոդը կատարվում է հերթականությամբ, առանց UI կամ այլ գործընթացների փակելու:
Օրինակ՝
console.log('Start');
setTimeout(() => {
console.log('Timeout');
}, 0);
console.log('End');
Արդյունքը կլինի՝
Start
End
Timeout
Քանի որ setTimeout callback-ը մտնում է գործերի հերթ և կատարվում է այնուհետև, երբ շղթան ազատվում է։