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

时间:2016-06-30 02:01:36

标签: javascript error-handling stack-trace es6-promise

是否可以使用"未处理的拒绝"来访问堆栈跟踪。承诺事件?



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()




1 个答案:

答案 0 :(得分:1)

如果您传递一个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
)