【发布时间】:2022-03-06 21:18:48
【问题描述】:
我正在尝试调试在浏览器上下文中运行的一些(第三方)代码,并且我想跟踪所有下游异步函数调用,这与 nodejs 提供的 async_hooks 几乎完全相同。本质上,类似于https://github.com/mafintosh/why-is-node-running,但在浏览器中。我会满足于“接近的东西”,或者如果我必须要修补全局变量......
任何人都知道远程关闭的东西吗?这个 (https://stackoverflow.com/a/49245432/1256988) 看起来很有希望,但它似乎不适用于我的子呼叫?!
我应该指出,我在这里的实际用途实际上只是保持异步函数调用的计数,以便在我的测试结束时,我知道我是否“泄露”了异步调用。
我还应该指出,这 (https://github.com/AndreasMadsen/async-hook/issues/15) 似乎表明我在浏览器中可能不走运(尽管我只能得到大约正确的结果)。
【问题讨论】:
-
如果没有原生支持,我认为无法直接替换
async_hooks。只是方式需要修补太多的 Web API 才能实现这一点,而且内存泄漏很容易通过非本地补丁意外引入,因为承诺没有当 t 已解决的未绑定到开放资源并且无法履行或拒绝它们时,允许 GC'd。 -
好吧,我想这会是这样。我会让这个打开一段时间,但你在这里的评论可能就是答案:(
标签: javascript debugging async-await