Middle
Promise misolida reject chaqirilgandan so'ng then, catch, finally ishlovchilarini ulash bilan konsolda raqamlarning chiqarilish tartibini aniqlang.
sobes.tech AI
AIdan javob
Если Promise сразу вызывается с reject, а затем навешиваются обработчики then, catch, finally, порядок вывода будет следующим:
const p = new Promise((resolve, reject) => {
reject('Ошибка');
});
p.then(() => console.log('then'))
.catch(() => console.log('catch'))
.finally(() => console.log('finally'));
В консоли выведется:
catch
finally
Объяснение:
- При вызове reject промис переходит в состояние rejected.
- then с первым аргументом для успешного результата пропускается.
- catch срабатывает и выводит 'catch'.
- finally срабатывает всегда, независимо от результата, и выводит 'finally'.
Обработчики then/catch/finally вызываются асинхронно после текущего стека, поэтому они сработают в порядке очереди микротасков.