Bluebird async.js抛出错误

时间:2017-04-28 07:49:49

标签: javascript node.js visual-studio-code bluebird

当我调试我的应用程序并将其设置为所有异常的断点时, 它停在bluebirds async.js(link

的第3行
{throw new Error(); } catch (e) {firstLineError = e;}

那条线让我觉得有些奇怪。

它的目的是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

我认为它可以让第一行的错误对象获得有关文件名,路径和行号的一些信息,因为这样的事情可以用于此。但我必须查看源代码。这当然看起来很有趣。

src/debuggability.js函数中的setBounds()使用了它:

在此字符串中调用,其中包含JavaScript,可能是eval在某处:

此字符串存储在名为lastLineCode的变量中。这似乎都为调试设置了一些范围,以确保调试的内容在Bluebird源代码的相关部分的第一行和最后一行之间,例如,当它与其他模块结合时。

您可以查看其中一些提交,以获取有关其添加方式的更多背景信息: