Sobes.tech
Middle

V akom poradí sa zobrazia čísla v kóde s Promise, setTimeout a synchronickým kódom (Event Loop)?

sobes.tech AI

Odpoveď od AI

U JavaScript-u, redosled izvršavanja koda sa Promise, setTimeout i sinhronim kodom određuje Event Loop i redovi mikrotaskova (microtasks) i makrotaskova (macrotasks).

Razmotrimo primer:

console.log('1');

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

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

console.log('4');

Objašnjenje:

  • Prvo se izvršava sav sinhroni kod, pa se prikazuju 1 i 4.
  • Zatim se izvršavaju mikrotaskovi (Promise), prikazujući 3.
  • Nakon toga, makrotaskovi (setTimeout), prikazujući 2.

Konačni redosled izlaza je: 1, 4, 3, 2.

Dakle, sinhroni kod se izvršava prvi, zatim mikrotaskovi (Promise), i na kraju makrotaskovi (setTimeout). Ovo je ključni aspekt razumevanja Event Loop-a u JavaScript-u.