javascript - 如何使用 Promise 逐步执行调试器

标签 javascript node.js bluebird

我在 Node 代码中使用 bluebird Promise,并经常使用调试器单步调试代码。然而,使用 promise ,我发现我无法像以前那样逐步完成。我必须添加断点,就像我在下面评论的那样。

        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 库中启用它?

最佳答案

以下是如何逐步履行 Bluebird promise :

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

关于javascript - 如何使用 Promise 逐步执行调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32767721/

相关文章:

node.js - Node 6 调试器窗口 - 尝试复制 OSX 应用程序图标以自定义电子预构建时出错

node.js - 一个包含 node.js 和 mongodb 的整个网站?

node.js - Mongoose 升级后,异步不会在回调中返回数据

javascript - 当函数返回对象数组时如何使用 Promise

javascript - 我可以假设 promise 中的错误会冒泡到新的 Promise 并捕获它吗?

javascript - 如何使用ajax加载表单

javascript - jQuery Grails 插件

javascript - Monotouch/Mono for Android Javascript 到 C#

javascript - 使用ajax提交多字段数据

node.js - 使用 Sequelize 在 SQL SERVER 中定义用户定义函数