Middle
Event Loop ilə bağlı tapşırıq: setTimeout, Promise və sinxron kod mövcud olduqda konsolda çıxış sırasını müəyyən edin. Nə sonuncu çıxacaq və niyə?
sobes.tech Süni İntellekt
AI-dan cavab
В 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).