javascript - 如何获取promise的 "initiator"调试信息?

标签 javascript node.js debugging promise visual-studio-code

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

最佳答案

请注意,您所要求的并不是实际的调用堆栈。根据 Promise 规范,当调用 .then() 处理程序时,调用堆栈将清除所有代码 - 这就是异步处理程序发生的情况。

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

关于javascript - 如何获取promise的 "initiator"调试信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46677630/

相关文章:

javascript - Node.js Telegram 机器人无法将用户从 super 组中踢出

debugging - 如何判断哪个任务死了?

javascript - jQuery 不隐藏 div

javascript - 使用 Javascript/JQuery 以编程方式禁用嵌套 Div 中的 OnClick

javascript - 在幻灯片末尾停止 Twitter Bootstrap Carousel

javascript - 在 JavaScript 中将 '1' 转换为 '0001'

javascript - Mongoose .populate() 未填充

node.js - 将异步代码视为 Node.js 中的线程?

debugging - 是否有适用于 GoLang 的 CLI(命令行界面)?

javascript - 在 IntelliJ : doesn't stop on breakpoints 中调试 mocha 测试