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'— sinhroni kod'4'— sinhroni kod'3'— mikrotask (promise) nakon sinhronog koda'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.