VS-Code 不会因 Promise 内的异常而暂停调试器

Pie*_*rre 6 javascript debugging node.js promise visual-studio-code

请考虑以下代码:

new Promise((resolve, reject) => {
   breaksomething() //won't pause
})
breaksomething() //pause as expected!
Run Code Online (Sandbox Code Playgroud)

我期待我的调试器停止执行 - 因为一个未定义的函数 - 在breaksomething()里面的行promise......但是我只得到以下错误输出:

“ReferenceError:breaksomething 未定义”

(没有停顿)。当遇到异常时,调试器在其他任何地方都按预期暂停,问题仅在 Promise 范围内。我确实在断点下勾选了所有异常未捕获的异常

我正在使用:
Visual Studio Code 1.17.2
Node 8.8.1
Inspector 调试器

Tat*_*rin 7

更新 根据Microsoft 团队已知问题的最新更新,这是 VS 代码中的一个已知问题。

您必须取消选中All ExceptionsUncaught Exceptions在 VS 代码中设置断点才能使其正常工作

调试器正常工作

  • 你对这个问题有什么不明白的 - 这不是一个解决方案!您正在向我展示如何在断点处停止调试器!那不是问题 - 问题是在出现异常时停止调试器。 (3认同)
  • 这是不正确的。1) 该链接没有指出 VS Code 中的任何问题 - 它只是关于如何不中断异常的解释 2) 您附加的图像有一个断点。无论异常标记如何,断点都会被命中并停止执行。 (2认同)

Pie*_*rre 1

我仍然不清楚为什么会发生这个问题,但我找到了解决方法。只需安装 bluebird 并在应用程序的初始化代码中添加以下内容:

global.Promise = require("bluebird");  
Run Code Online (Sandbox Code Playgroud)

...这将覆盖默认的nodejs Promise,并在勾选“所有异常”时按预期中断