访问未捕获的承诺拒绝错误堆栈

Accessing Uncaught Promise Rejection Error Stack

本文关键字:拒绝 错误 堆栈 承诺 访问      更新时间:2023-09-26

是否可以使用" unhandlerejection "承诺事件访问堆栈跟踪?

self.addEventListener("error", function(event) {
 console.log(event.error.stack)
 event.preventDefault()
}) //works
self.addEventListener("unhandledrejection", function(event) {
 console.log(event.error.stack)
 event.preventDefault()
}) //fails
Promise.reject()

如果你传递一个Error对象作为拒绝原因,那么你就可以访问堆栈。

self.addEventListener("error", function(event) {
  console.log(event.error.stack)
  event.preventDefault()
}) //works
self.addEventListener("unhandledrejection", function(event) {
  console.log(event.stack)
  event.preventDefault()
}) //works
Promise.reject(
  new Error('rejected') // here's the magic
)