我认为a.shouldNotResolve()
会在cancelOrder中“捕获”被拒绝的承诺,并返回“预计这会被捕获”,但它会解决,并返回“承诺无论如何解决”。为什么'shouldNotResolve`方法没有捕获被拒绝的承诺?
const a = {
cancelOrder: function(){
return Promise.reject('something broke')
.then((x) => {
return x;
})
.catch((e) => {
console.log('this caught the error', e);
});
},
shouldNotResolve: function() {
return this.cancelOrder()
.then(() => {
console.log('promise resolved anyway');
})
.catch(() => {
console.log('expected this to catch');
});
}
}
a.shouldNotResolve(); // "promise resolved anyway"
为什么a.cancelOrder拒绝,但是a.shouldNotResolve无论如何解决?
谢谢。
如果错误被重新抛入'catch'处理程序中,它将正常工作。 – robertklep