使新的堆栈跟踪.js库同步



我正在使用新的stacktracejs库,它返回了一个承诺。

StackTrace.get() // this results in a promise

我可以做些什么来使其同步吗?

喜欢这个:

var result = magicalSomething(StackTrace.get());

更新:现在有一个堆栈跟踪.getSync(),它提供了部分信息,但您可以使用它。

StackTrace.js通过调用堆栈跟踪中涉及的脚本文件并为其提取其他信息来工作。这意味着您无法获取它生成的堆栈跟踪,因为部件已经是异步的。

从技术上讲,这实际上是可以解决的,并且可以同步(以冻结页面数十秒为代价) - 但这似乎不是库的设计目标。

相反,使用库提供的内容并使用给定的承诺:

StackTrace.get().then(function(result) {
   // I got result here
});
更新

:本杰明的答案更正确。从堆栈跟踪中使用它.js v1.3.0

var stacktrace = StackTrace.getSync();

如果你需要同步行为,而不关心猜测匿名函数或源映射支持或旧的IE,你可以使用堆栈跟踪基础的堆栈解析库.js - 错误堆栈解析器,这种方式:

function stacktrace() {
  try {
    throw new Error();
  } catch (e) {
    return ErrorStackParser.parse(e);
  }
}
<</div> div class="one_answers">

只是想提一下,也可以使用 stacktrace-js 库同步获取源映射的堆栈跟踪。

它不是 API 的一部分,但可以通过一些修改来实现。

看这里: https://github.com/stacktracejs/stacktrace.js/issues/188

相关内容

  • 没有找到相关文章

最新更新