在catch块中抛出新的错误不起作用
Throwing new error in catch block doesn't work
我正在做一些异步操作,我使用Promise的本地实现来控制执行流程:
Promise.resolve({})
.then(...)
.then(...)
.then(...)
.catch((error) => { throw new Error(error) });
没有抛出错误,但是当我更改为console.log时,一切正常。知道为什么吗?
谢谢!
在承诺链中引发的异常只能在同一承诺链中稍后被catch截获。它不能在承诺链之外被看到(如果这是你的意图的话)。在你的例子中,例外是"lost"。然而,Chrome和其他一些浏览器检测到这种情况,并在控制台中为未处理的异常发出警告。
一个正确的带有异常的承诺链应该是:
Promise.resolve({})
.then(...)
.then(() => { throw new Error(error); }) // throw exception here
.then(...)
.catch((error) => { /* handle error */ }); // catch it later in promise chain
.then(...)
.then(() => { throw new Error(error); }) // this exception is not caught later in the promise and is lost (shown as unhandled exception in some browsers)
相关文章:
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 错误检查在Javascript中不起作用
- Javascript设置日期不起作用,显示错误的时间
- javascript函数,该函数不起作用,但不会显示任何错误
- 属性选择器不起作用(语法错误、无法识别的表达式)
- .fillStyle 不起作用,控制台中没有错误
- 简单的jquery不起作用,并返回错误
- 点击按钮dons'它在IE9中不起作用,但没有错误消息(它在chrome中起作用)
- jQuery验证不起作用:需要知道错误
- jQuery alerts在jQuery 1.11.2上不起作用;类型错误:n.browser未定义;
- Twitter引导程序弹出在网站上不起作用:未获取引用错误
- 错误验证在AngularJS中不起作用
- 使用Javascript在模态内部的标签上显示错误消息不起作用
- 当展开点击 li 的 ul 事件时,JS JQUERY 错误不起作用
- Ajax 成功事件多错误不起作用
- 地理定位功能错误不起作用
- 滚动到第一个错误不起作用
- Ajax-jQuery和Ajax错误/不起作用
- 在catch块中抛出新的错误不起作用