Sobes.tech
Middle

In quale ordine verranno visualizzati i numeri nel codice con Promise, setTimeout e codice sincrono (Event Loop)?

sobes.tech AI

Risposta dell'AI

In JavaScript, l'ordine di esecuzione del codice con Promise, setTimeout e codice sincrono è determinato dall'Event Loop e dalle code di microtask (microtasks) e macrotask (macrotasks).

Consideriamo un esempio:

console.log('1');

setTimeout(() => {
  console.log('2');
}, 0);

Promise.resolve().then(() => {
  console.log('3');
});

console.log('4');

Spiegazione:

  • Prima viene eseguito tutto il codice sincrono, quindi vengono stampati 1 e 4.
  • Poi vengono eseguite le microtask (Promise), stampando 3.
  • Successivamente vengono eseguite le macrotask (setTimeout), stampando 2.

L'ordine finale di output è: 1, 4, 3, 2.

Quindi, il codice sincrono viene eseguito per primo, seguito dalle microtask (Promise), e infine dalle macrotask (setTimeout). Questo è un punto chiave per comprendere l'Event Loop in JavaScript.