如何获取promise的“发起者”调试信息?

问题描述 投票:0回答:1

当使用 Visual Studio Code 等工具在 Node.JS 中调试

then
承诺回调时,调用堆栈似乎几乎是多余的。 它不是提供从逻辑角度实际调用我的代码的函数,而是提供从字面角度调用我的代码的函数; Bluebird 库(或者可能是 Q 库)函数。 我实际上想看到的是之前执行的 Promise 函数,或者 Promise 链的“发起者”。 从逻辑角度来说这就是我关心的程序流程。 有没有办法在调试过程中获取这些信息?

javascript node.js debugging promise visual-studio-code
1个回答
3
投票

您要意识到,您要求的并不是实际的调用堆栈。根据 Promise 规范,当调用

.then()
处理程序时,调用堆栈将清除所有代码 - 这就是异步处理程序发生的情况。

也就是说,我理解您希望看到什么(异步流堆栈或类似的东西),但我不知道截至 2017 年有任何工具可以提供该功能。 Bluebird Promise 库 有一种方法为您提供可能与您的问题相关的长堆栈跟踪

© www.soinside.com 2019 - 2024. All rights reserved.