Middle
Exercice sur la boucle d'événements : déterminez l'ordre d'affichage dans la console en présence de setTimeout, Promise et code synchrone. Qu'est-ce qui sera affiché en dernier et pourquoi ?
sobes.tech IA
Réponse de l'IA
В 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).