Sobes.tech
Middle

Úloha na poradie volania console.log: zoradiť poradie výstupu logov (časť 1 — synchronný kód, časť 2 — s asynchrónnym kódom, promises a setTimeout).

sobes.tech AI

Odpoveď od AI

Razmotrimo redosled prikaza console.log za dva dela:

Deo 1 — sinhroni kod

Svi console.log se izvršavaju redom kojim su napisani.

console.log('1');
console.log('2');
console.log('3');
// Izlaz: 1, 2, 3

Deo 2 — sa asinhronim kodom, promise-ima i setTimeout-om

Primer:

console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');

Redosled prikaza:

  1. '1' — sinhroni kod
  2. '4' — sinhroni kod
  3. '3' — mikrotask (promise) nakon sinhronog koda
  4. '2' — makrotask (setTimeout) nakon mikrotaskova

Rezultat: 1, 4, 3, 2

Ovo je zbog toga što se mikrotaskovi (promise-ovi) izvršavaju odmah nakon trenutnog steka poziva, dok se makrotaskovi (setTimeout) izvršavaju kasnije.