Middle
Եվենթ Լուպի վրա առաջադրանք: որոշեք կոնսոլում արտածման կարգը setTimeout, Promise և սինխրոնային կոդի առկայության դեպքում: Ի՞նչ կցուցադրվի վերջին և ինչու?
sobes.tech AI
Պատասխան AI-ից
В JavaScript порядок выполнения кода с setTimeout, Promise и синхронным кодом определяется Event Loop и очередями задач (task queue и microtask queue).
- Сначала выполняется весь синхронный код.
- Затем выполняются все микротаски (microtasks), например, обработчики Promise.
- После этого выполняются макротаски (tasks), например, setTimeout.
Пример:
console.log('Синхронный код');
setTimeout(() => {
console.log('setTimeout');
}, 0);
Promise.resolve().then(() => {
console.log('Promise');
});
Вывод будет:
Синхронный код
Promise
setTimeout
Последним будет выведено сообщение из setTimeout, потому что setTimeout ставится в очередь макротасков, которая обрабатывается после микротасков (Promise).