Middle
Άσκηση για το Event Loop: καθορίστε τη σειρά εμφάνισης στην κονσόλα με την παρουσία 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).