Sobes.tech
Назад к вопросам
Middle
1

Определите порядок вывода цифр в консоли для примера с Promise, где вызывается reject, а затем навешиваются обработчики then, catch, finally.

Компании, где спрашивали
ОТП БанкОТП Банк

Ответ от нейросети

sobes.tech AI

Если 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 вызываются асинхронно после текущего стека, поэтому они сработают в порядке очереди микротасков.