如何正确调试 node.js 中的简单承诺?

How to debug simple promises in node.js properly?

我的问题是,当我调试我的节点应用程序时,我无法通过简单的 运行 调试看到承诺的结果。

例如,我有以下无法调试的代码:

sampleRepository
    .find()
        .then(result => result)  // breakpoint goes here
        .catch(err => err)

当我把断点放在那里时,我看不到结果变量的值。所以我不得不重构代码来解决它。 作为解决方法,我正在做的是:

sampleRepository
        .find()
            .then(result => {
                return result; // breakpoint goes here
            })  
            .catch(err => err)

它起作用了,因为现在我可以看到 "result" 变量的值,但我每次都必须重构代码。有没有更简单的方法来调试这些承诺而不是重构代码?

实际上 vscode 已经支持了。您在 then-handler 上设置断点,然后在遇到断点后使用 step into。检查我制作的这个小 .gif:https://imgur.com/a/LNCJ4kV

注意:我使用的版本是 1.45.1