NodeJS 在异步函数(async/await)中调用栈打印不全的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS 在异步函数(async/await)中调用栈打印不全的问题相关的知识,希望对你有一定的参考价值。

参考技术A

我在 index.ts 中调用 time-helper.ts 中的 waitForFn(),出错的调用栈是这样的:

这个调用栈有啥问题呢?只显示出了 time-helper 模块的文件信息,完全不显示调用者的信息,这样一来,完全不知道是谁调用了这个 waitForFn() 函数。你从错误信息里都不知道是哪个函数出错了。

出现这种情况,原因在这里:「链接」

解决办法在这里:「链接」

简单总结下 ,就是:

在异步函数返回之前,系统会清空当前调用线,然后把异步函数中的调用栈写进去。


解决办法 :只要把 tsconfig.json 文件中的 compilerOptions.target 改成 es2018 或以上的版本即可。

改完后效果:

可见整个调用栈都非常清晰。

以上是关于NodeJS 在异步函数(async/await)中调用栈打印不全的问题的主要内容,如果未能解决你的问题,请参考以下文章

nodejs异步调用async

Nodejs异步编程

Nodejs异步编程

js:nodejs通过async异步提交事务数据

nodejs之async异步编程

swift 异步 async/await 的使用