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-ი გადადის სამუშაოს რიგში და შესრულდება შემდეგ, რაც ზარის სტეკი გათავისუფლდება.