Как предотвратить вызов всех методов в цепочке обещаний после ошибки - PullRequest
0 голосов
/ 22 января 2019
promise
      .catch(e => { console.log('Error'); return; })
      .finally(e => { console.log('Hi Mum'); return; })
      .then(e => { console.log('hello'); return; });

Когда обещание отклонено, метод then все еще вызывается.

Как остановить вызов метода then после отклонения?

1 Ответ

0 голосов
/ 22 января 2019

Вы звоните then поздно * Вы должны были позвонить до улова:

promise
  .then(e => { console.log('hello'); return; });
  .catch(e => { console.log('Error'); return; })
  .finally(e => { console.log('Hi Mum'); return; })

Обещания образуют цепочку, и вполне допустимо продолжать после того, как что-то поймать.

*: слишком поздно я имею в виду, что обработчик then регистрируется как продолжение Обещания, возвращенного из finally, а не первоначального Обещания.

...