如何通过promises逐步调试

时间:2015-09-24 17:44:26

标签: javascript node.js bluebird

我在节点代码中使用蓝鸟承诺,经常使用调试器来逐步执行代码。然而,使用承诺,我发现我不能像以前那样逐步完成。我必须像我在下面评论的那样添加断点。

        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或任何promise库中启用它?

1 个答案:

答案 0 :(得分:0)

以下是您如何逐步完成蓝鸟承诺:

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