监听 unhandledrejection 事件需要调用 window.addeventlistener('unhandledrejection', handler),并在回调函数中接收一个包含 promise 和 reason 属性的事件对象。这样做可以捕获所有未被 catch 处理的 promise 拒绝状态,防止程序因未处理异常而崩溃或产生静默失败。

如何获取被拒绝的具体原因
在事件处理函数中,通过访问事件对象的 event.reason 属性即可直接获取导致 Promise 被拒绝的值。这个值可能是任何类型的数据,包括 Error 对象、字符串或数字,开发者需要根据实际业务逻辑对 event.reason 进行判断和处理,例如记录日志或显示用户提示。

如何处理不同类型的拒绝原因
当 event.reason 是一个 Error 对象时,可以通过 instanceof Error 进行类型检查,从而提取更详细的错误信息如 message 和 stack。如果拒绝原因是普通值,则直接使用该值进行处理。这种区分处理方式能确保无论 Promise 以何种方式被拒绝,都能得到恰当的错误响应。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











