为什么我的JavaScript Error监控没有捕获到Promise中的错误?
我给window绑定了onerror和onunhandledrejection,但发现Promise里的reject错误没有被监控到。比如这个代码:
window.onerror = (msg, url, line) => {
console.log('捕获到错误:', msg); // 这里没输出
};
Promise.reject('测试错误').catch(() => {}); // 我故意没处理这个catch
我原本以为未处理的Promise.reject会被onunhandledrejection抓到,但即使移除.catch()还是没触发。是不是这两个监听器的使用顺序有问题?或者Promise错误需要单独配置?
window.onunhandledrejection只捕获未处理的Promise错误,但你的.catch()已经算处理过了。如果想测试,去掉.catch()就行。正确示例:
就这样。