首页 > 解决方案 > 未实现没有 catch 块的 Promise (unhandledrejection) javascript

问题描述

我用 VueJs Javascript 编写项目,并希望在控制台消息中查看我的任何 Promise 是否未实现且没有 catch 块。

我尝试过这样的事情

Promise.reject("error!");
window.addEventListener('unhandledrejection', event => {
  console.log('i am error')
});

但没有成功。还有其他方法吗?或者我该如何解决这个问题?

标签: javascriptvue.jses6-promise

解决方案


unhandledrejection适用于目前仅在 Chrome 中实现的本机 Promises。如果您还想在其他浏览器中记录这些错误,则需要使用 bluebird 等其他实现覆盖本机 Promise:

Promise.reject("error!");
window.addEventListener('unhandledrejection', event => {
  console.log('i am error')
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.5.1/bluebird.js"></script>

您需要确保将 bluebird 作为第一个脚本加载。

bluebird:错误管理配置


推荐阅读