当我调试我的应用程序并将其设置为所有异常的断点时,它在bluebirds async.js (link)的第3行停止。
{throw new Error(); } catch (e) {firstLineError = e;}这句话让我觉得有点奇怪。
它的目的是什么?
谢谢
发布于 2017-04-28 16:02:06
我假设它是用来获取第一行的error对象,以获得有关文件名、路径和行号的一些信息,因为这样的东西可以用于此目的。但我必须看一下源代码。它看起来确实很有趣。
这在src/debuggability.js中的setBounds()函数中使用:
在包含JavaScript的字符串中调用,该字符串可能在某处被evaled:
此字符串存储在名为lastLineCode的变量中。这似乎都为调试设置了一些范围,以确保调试的内容位于Bluebird源代码相关部分的第一行和最后一行之间,例如,当它与其他模块组合时。
您可以查看其中一些提交,以了解有关它是如何添加的更多上下文:
https://stackoverflow.com/questions/43674874
复制相似问题