如何通过 promises 单步执行调试器

how to step through debugger with promises

我在我的节点代码中使用 bluebird promises,并经常使用调试器单步执行代码。但是,使用 promises,我发现我无法像以前那样逐步完成。我必须像下面评论的那样添加断点。

        var promise = doSomethingAndReturnPromise1(stuff);
        promise.then(function(stuff) {
            return doSomethingAndReturnPromise2(stuff) /* add brk pt */
        }).then(function(user) {
            return doSomethingAndReturnPromise3(stuff) /* add brk pt */
        }).catch(function(err) {
            // handle err /* add brk pt */
        }

我记得在使用 async 时,我能够在不添加额外断点的情况下单步执行,或者可以设置断点并更容易地从堆栈中分辨出之前发生的事情。有没有办法在蓝鸟或任何承诺库中启用它?

以下是逐步执行 bluebird 承诺的方法:

  1. 通过打开 Promise.longStackTraces() 或以其他方式将 bluebird 置于调试模式(通过设置环境变量 BLUEBIRD_DEBUG=1 )来关闭批处理蹦床。
  2. 通过打开开发人员工具打开异步堆栈跟踪,转到 "Sources" 选项卡并单击 "Async"。
  3. 调试。