当我调试我的应用程序并将其设置为所有异常的断点时, 它停在bluebirds async.js(link)
的第3行{throw new Error(); } catch (e) {firstLineError = e;}
那条线让我觉得有些奇怪。
它的目的是什么?
谢谢
答案 0 :(得分:1)
我认为它可以让第一行的错误对象获得有关文件名,路径和行号的一些信息,因为这样的事情可以用于此。但我必须查看源代码。这当然看起来很有趣。
src/debuggability.js
函数中的setBounds()
使用了它:
在此字符串中调用,其中包含JavaScript,可能是eval
在某处:
此字符串存储在名为lastLineCode
的变量中。这似乎都为调试设置了一些范围,以确保调试的内容在Bluebird源代码的相关部分的第一行和最后一行之间,例如,当它与其他模块结合时。
您可以查看其中一些提交,以获取有关其添加方式的更多背景信息: