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) бұрын орындалады.