我简化了下面代码中的场景,因为我没有空间来解释我的用例,但基本上我是从 promise 的“catch” block 中抛出错误。如何从该 catch block 传递错误(在下面的示例中,我希望从我包装代码的“try/catch”的外部“catch” block 报告错误):
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
reject();
}, 1000);
});
try {
p.then(function() {
console.log('promise resolved');
}).catch(function() {
throw new Error('I want to get out of this catch block!');
});
} catch (err) {
console.log('I want to report the error from here' + err.message);
}
最佳答案
Promise 中的 catch
处理程序与 Promise 本身一样异步,因此您无法从它们恢复到同步流/异常控制。您传递给 .catch
的函数可能要等到其周围的 try
/catch
退出之后才会被调用。
关于javascript - "throw new Error()"在 catch block 上下文中捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950855/