Sobes.tech
Middle

Determina l'ordine di uscita dei numeri nella console per l'esempio con Promise, in cui viene chiamato reject e poi vengono agganciati i gestori then, catch, finally.

sobes.tech AI

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