基本上,I have the same question as this,但用于节点16+。答案的最下面写着:
在Node 14+上,您可以使用--async-stack-traces
标志在处理异步代码时改进堆栈跟踪。有一些限制,比如只能使用async
/await
,而不能使用promise。
您可以在https://v8.dev/blog/fast-async上阅读更多有关此内容的信息
我使用的是v16.13.2,当我输入node -h | grep async
时,我看不到任何关于这个标志的信息。然而,我的堆栈跟踪仅限于同步堆栈,就像问这个问题的人一样。我理解原因,但我想知道是否有方法可以获得更好的故障排除信息。--async-stack-traces
的概念被废弃了吗?它被其他东西取代了吗?有没有办法在Node 16+中查看异步堆栈跟踪?如果是这样,是如何做到的?
**更新:**我在这个github问题中找到了一条有用的评论:node --v8-options | grep async
所以我猜这个标志确实存在于16中,但我真的不知道如何打开它,特别是当我的package.json
充满脚本时,没有一个直接使用node
(Jasmine,Testcafe,Typescript,ts-node)。
**更新:**我发现这条评论后更困惑了。
在V8中默认启用此标志。你不需要通过它。
看这里的证据:https://github.com/nodejs/node/blob/5fad0b93667ffc6e4def52996b9529ac99b26319/deps/v8/src/flags/flag-definitions.h#L1730
在我看来不像...我使用的库必须有特定的东西。
**更新:**原来我一直在经历一个Test Café bug这整个时间。它与此标志无关(默认情况下为启用状态)。我想这个信息足以作为答案。
1条答案
按热度按时间lkaoscv71#
你可以在我上面的更新中找到这个问题的答案,但总结一下:
1.此标志仍然存在,但列出它的唯一方法是运行
node --v8-options
1.默认情况下,此标志处于启用状态。
1.我的症状是一个testcafe bug,它 * 巧合地 * 与异步堆栈跟踪关闭时您会看到的情况相匹配。