Middle
Kādā secībā skaitļi tiks izvadīti kodā ar Promise, setTimeout un sinhrono kodu (Event Loop)?
sobes.tech AI
Atbilde no AI
JavaScript, Promise, setTimeout un sinhronais kods izpildes secība ir noteikta ar Event Loop un mikro- un makro uzdevumu (microtasks un macrotasks) rindām.
Apskatīsim piemēru:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
Promise.resolve().then(() => {
console.log('3');
});
console.log('4');
Skaidrojums:
- Vispirms tiek izpildīts viss sinhronais kods, tāpēc tiek parādīti
1un4. - Tad tiek izpildītas mikro uzdevumi (Promise), parādot
3. - Pēc tam tiek izpildītas makro uzdevumi (setTimeout), parādot
2.
Galīgā izvades secība ir: 1, 4, 3, 2.
Tātad, sinhronais kods tiek izpildīts pirmais, pēc tam mikro uzdevumi (Promise), un beigās makro uzdevumi (setTimeout). Šis ir būtisks punkts, lai saprastu Event Loop JavaScriptā.