青岛IT培训的小编总结,需要注意:
不同浏览器下返回的 error 对象可能不同,需要注意兼容处理。
需要注意避免 addEventListener 重复监听。
六、Promise Catch
在 promise 中使用 catch 可以非常方便的捕获到异步 error ,这个很简单。
没有写 catch 的 Promise 中抛出的错误无法被 onerror 或 try-catch 捕获到,所以我们务必要在 Promise 中不要忘记写 catch 处理抛出的异常。
解决方案: 为了防止有漏掉的 Promise 异常,建议在全局增加一个对 unhandledrejection 的监听,用来全局监听Uncaught Promise Error.使用方式:
window.addEventListener(“unhandledrejection”, function(e){
console.log(e);
});
我们继续来尝试一下:
window.addEventListener(“unhandledrejection”, function(e){
e.preventDefault()
console.log(‘捕获到异常:', e);
return true;
});
Promise.reject('promise error’);

可以看到如下输出:
那如果对 Promise 不进行 catch 呢?
window.addEventListener(“unhandledrejection”, function(e){
e.preventDefault()
console.log(‘捕获到异常:', e);
return true;
});
new Promise((resolve, reject) => {
reject('jartto: promise error’);
});
嗯,事实证明,也是会被正常捕获到的。
所以,正如我们上面所说,为了防止有漏掉的 Promise 异常,建议在全局增加一个对 unhandledrejection 的监听,用来全局监听 Uncaught Promise Error.
补充一点:如果去掉控制台的异常显示,需要加上:
event.preventDefault();
以上就是青岛IT培训给大家做的内容详解,更多关于UI的学习,请继续关注青岛IT培训