Middle
Koji će biti rezultat sledećeg koda? ```javascript console.log(1); setTimeout(() => { console.log(2); }, 0); Promise.resolve().then(() => { console.log(3); }); console.log(4); setTimeout(() => { Promise.resolve().then(() => { console.log(5); }); }, 0); ```
sobes.tech АИ
Одговор од АИ
Вывод будет:
1
4
3
2
5
Объяснение порядка вывода:
console.log(1);— синхронный вызов, выводит1.setTimeout(..., 0)— ставит колбэк в очередь макротасков, выполнится позже.Promise.resolve().then(...)— ставит колбэк в очередь микротасков, которые выполняются после текущего стека, но до макротасков.console.log(4);— синхронный вызов, выводит4.
После завершения синхронного кода:
- Выполняются микротаски:
console.log(3); - Затем макротаски из
setTimeout: сначалаconsole.log(2); - Второй
setTimeoutвызываетPromise.resolve().then(...), который ставит микротаск, выполняющийconsole.log(5);после текущего макротаска.
Таким образом, порядок: 1,4,3,2,5.