基本上,我有与此相同的问题,但是针对Node 16+。那个答案的底部说:
在Node 14+上,您可以使用
--async-stack-traces
标志,在处理异步代码时获得改进的堆栈跟踪。有一些限制,例如仅适用于async
/await
而不是promises。您可以在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 中默认启用。您不需要传递它。
对我来说似乎不是这样... 它一定和我正在使用的库有关。
更新: 原来我一直在经历一个 Test Café bug。这与这个标志(默认打开)无关。我认为这些信息已经足够作为答案了。