Middle
În ce ordine vor fi afișate numerele în codul cu Promise, setTimeout și cod sincron (Event Loop)?
sobes.tech AI
Răspuns de la AI
În JavaScript, ordinea de execuție a codului cu Promise, setTimeout și codul sincron este determinată de Event Loop și cozile de microtask-uri (microtasks) și macro task-uri (macrotasks).
Să luăm un exemplu:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
Promise.resolve().then(() => {
console.log('3');
});
console.log('4');
Explicație:
- Mai întâi, se execută tot codul sincron, deci se afișează
1și4. - Apoi, se execută microtask-urile (Promise), afișând
3. - După aceea, se execută macro task-urile (setTimeout), afișând
2.
Ordinea finală de afișare este: 1, 4, 3, 2.
Astfel, codul sincron se execută primul, apoi microtask-urile (Promise), și în final macro task-urile (setTimeout). Acesta este un punct cheie pentru înțelegerea Event Loop în JavaScript.