Sobes.tech
Middle

Може ли вътре в then да обработим състоянието rejected на промиса? Каква е разликата между обработката на reject във втория callback на then и в catch?

sobes.tech AI

Отговор от AI

Да, вътре в then можете да обработите отхвърленото състояние, като предадете втори callback към then:

promise.then(
  result => { /* обработка на успешен резултат */ },
  error => { /* обработка на грешка */ }
);

Разликата между обработката на reject във втория callback на then и в catch:

  • Вторият callback на then обработва само грешки, възникнали в първоначалния промис.
  • catch улавя грешки, възникнали както в първоначалния промис, така и във всеки предишен then, ако не са били обработени.

Затова catch е по-удобен за централизирана обработка на грешки, а вторият callback на then — за локална обработка на конкретен промис.