Sobes.tech
Middle+

Event Loop туралы айтыңыз: ол қалай жұмыс істейді, микрозадаждар мен макрозадаждар дегеніміз не?

sobes.tech AI

AI-дан жауап

Event Loop — бұл JavaScript-те асинхронды кодты негізгі ағынды блоктамай орындауға мүмкіндік беретін механизм.

Ол былай жұмыс істейді:

  • Алдымен барлық синхронды код орындалады.
  • Содан кейін, Event Loop микрозадақтар кезегін тексереді және оларды кезекпен орындайды.
  • Осыдан кейін, макрозадақтар (macrotasks) тиісті кезектен орындалады.

Микрозадақтар — жоғары приоритетті тапсырмалар, олар ағымдағы синхронды кодтан кейін және макрозадақтардан бұрын орындалады. Микрозадақтарға мысалдар: промис (Promise.then/catch/finally), MutationObserver.

Макрозадақтар — төменгі приоритетті тапсырмалар, олар микрозадақтардан кейін орындалады. Мысалдар: setTimeout, setInterval, I/O операциялары, UI оқиғалары.

Мысал:

console.log('бастау');
setTimeout(() => console.log('уақытша'), 0);
Promise.resolve().then(() => console.log('промис')); 
console.log('аяқ');

Шығу нәтижесі:

бастау
аяқ
промис
уақытша

Өйткені микрозадақтар (промис) макрозадақтардан (setTimeout) бұрын орындалады.