Если есть ситуации, когда обещание будет отклонено, из-за этого отклонения все равно будет выдано сообщение об ошибке. Как мы должны обращаться с этим или просто игнорировать его?
Случай 1: Если пользователь может нажать кнопку «Отмена», и операция отменяется, и мы считаем, что такая отмена в порядке, мы просто справимся с этим:
p.then(value => {
// fulfillment handler
}, err => {}); // do nothing
или
p.then((value) => {
// fulfillment handler
}).catch(err => {}); // do nothing
Или мы можем просто полностью игнорировать это и не использовать обработчик отклонения или catch ()?
Случай 2: Что если мы сделаем
let p = Promise.reject(1);
тогда исключение немедленно выдается. Нет времени даже ловить его. Тогда мы должны всегда использовать:
let p = Promise.reject(1).catch(err => {});
? На самом деле, если напечатано p
выше, это решенное обещание, а без catch()
- отклоненное обещание, поэтому я немного растерялся. Я думал, что оба должны быть в отклоненном состоянии.