Middle
Event Loop тапсырмасы: setTimeout, Promise және синхронды код болған кезде консоль шығару тәртібін анықтаңыз. Соңғы не шығарылады және неге?
sobes.tech AI
AI-дан жауап
JavaScript-те setTimeout, Promise және синхронды кодпен орындалу тәртібі Event Loop және тапсырмалар кезектері (task queue және microtask queue) арқылы анықталады.
- Алдымен барлық синхронды код орындалады.
- Содан кейін барлық микротаскалар (microtasks), мысалы, Promise өңдеушілері орындалады.
- Осыдан кейін макротаскалар (tasks), мысалы, setTimeout, орындалады.
Мысал:
console.log('Синхронды код');
setTimeout(() => {
console.log('setTimeout');
}, 0);
Promise.resolve().then(() => {
console.log('Promise');
});
Шығу нәтижесі:
Синхронды код
Promise
setTimeout
setTimeout-тан хабарлама соңғы шығарылады, себебі setTimeout макротаска кезегіне қойылады, ол микротаскалар (Promise) аяқталғаннан кейін өңделеді.