这是我的rp电话:
function hit() = {
return rp(options).then((res) => {
return res;
}).catch((err) => {
console.log("Error occured");
throw err;
})
}
和一个调用此函数的函数:
hit().then( res => {
console.log(ae_res)
}).error( err => {
console.err(err) /// code never hits this line
});
当我运行它时,如果rp调用成功,一切正常。但是如果它失败了,我从来没有碰到被调用函数中的catch()块。
我无法传播rp调用抛出的原始错误。
答案 0 :(得分:0)
您使用.error
代替.catch
。
根据Bluebird manual(request-promise返回的Promise类型),.error
只处理OperationalErrors,它们基本上是在不使用throw的情况下拒绝Promise的错误。对于抛出的错误,您必须使用.catch
:
hit().then( res => {
console.log(ae_res)
}).catch( err => {
console.err(err)
});