我在Promise的then回调中抛出一个error,没有使用catch处理:
function timeout(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); } timeout(100).then(() => { throw new Error( "test" ); }); |
console的报错截图是这样的:
我发现onError方法不能捕获未处理的Promise错误,即unhandledrejection。
那我应该怎样怎样全局监听unhandledrejection呢?
同求. 求解决 ,今天算是被坑到了
我复写了console.error,在console.error里监听。
onError是小程序内部的回调,并不是语言/环境级别的异常捕获,Promise rejection只能自己catch啦~~~
网页阔以这样监控
window.addEventListener(
"unhandledrejection"
,
function
(event)
{
});
如果小程序也支持一下就好啦
// 上面有同学提到重新 console.error 方法,有用!!! var originError = console.error console.error = function(){ originError(...arguments) // 上报错误日志 }
https://developers.weixin.qq.com/community/develop/doc/000c8cf5794770272709f38a756000 官方同学说在解决这个问题了
同求,纳闷为啥有些地方报错就不会触发,原来是异步函数里的报错就不会触发onError。 求解决方案
也是懒啊
求解决, 有人有解决方案了吗
直接使用
addEventListener(
"unhandledrejection"
,
function
(event)
{
});
就可以了
开发者工具可以这样用, 但是真机不行(android)
这个有最终的解决方案吗,同求
同求. 求解决
哈哈
支持一哈