Sobes.tech
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 și 4.
  • 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.