如果在某些情况下可以拒绝某个承诺,由于这种拒绝,仍然会引发错误。我们应该如何处理它或只是忽略它?
情况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()
的那个是被拒绝的承诺,所以我有点困惑。我认为两者都应该处于拒绝状态。