Sobes.tech
Middle+

Պատմիր Event Loop-ի մասին՝ դա ինչ է, ինչպես է աշխատում?

sobes.tech AI

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

Event Loop — դա մեխանիզմ է JavaScript-ում և այլ միակամար միջավայրերում, որը թույլ է տալիս մշակել ասինխրոն օպերացիաները առանց հիմնական հոսքը փակելու:

Ինչպես է աշխատում:

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

Այսպիսով, նույնիսկ ասինխրոն օպերացիաների դեպքում, կոդը կատարվում է հերթականությամբ, առանց UI կամ այլ գործընթացների փակելու:

Օրինակ՝

console.log('Start');
setTimeout(() => {
  console.log('Timeout');
}, 0);
console.log('End');

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

Start
End
Timeout

Քանի որ setTimeout callback-ը մտնում է գործերի հերթ և կատարվում է այնուհետև, երբ շղթան ազատվում է։