【问题标题】:Getting context from map files从地图文件中获取上下文
【发布时间】:2020-11-26 07:06:55
【问题描述】:

我使用 stacktrace.js 来获取有关异常的正确堆栈跟踪,但我想知道是否可以提取部分代码以获取异常发生位置的上下文

有没有什么好的又简单的方法呢?

【问题讨论】:

    标签: javascript exception map-files stacktrace.js


    【解决方案1】:

    所以在阅读了代码之后,答案是肯定的,并且 stacktrace 已经将源代码存储在缓存中。我们可以这样检索它:

    创建一个助手:

    async extractFromCache(cache: any, filename: string) {
      let originContent: string = "";
      
      if (cache[filename]) {
        if (typeof cache[filename] === "string") {
          originContent = cache[filename];
        } else if (typeof cache[filename] === "string" && cache[filename].constructor.name === "ZoneAwarePromise") {
          originContent = await cache[filename];
        }
      }
    
      return originContent;
    }
    

    然后用stacktracejs需要这样做:

    const cache = {};
    const trace = await StackTrace.fromError(message, { sourceCache: cache });
    const sourceCode = await extractFromCache(cache, trace[0].fileName);
    

    然后使用 trace.lineNumber 从 sourceCode 之前和之后提取一些行!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 2012-10-18
      • 2011-11-09
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2011-07-15
      相关资源
      最近更新 更多