我在 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 :
- 通过打开
Promise.longStackTraces()
或将 bluebird 置于 Debug模式(通过设置环境变量BLUEBIRD_DEBUG=1
)来关闭批处理蹦床。 - 通过打开开发人员工具,转到“源”选项卡并单击“异步”来打开异步堆栈跟踪。
- 调试。
关于javascript - 如何使用 Promise 逐步执行调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32767721/