大多数Node库中的API都是设计为异步的。当在回调函数中抛出异常时,堆栈跟踪仅显示从process._tickCallback开始的调用堆栈。
我想知道是否有技巧可以显示触发_tickCallback函数的堆栈跟踪。
--async-stack-traces
Node.js基金会发布的文章 - https://medium.com/@nodejs/introducing-node-js-12-76c41a1b3f3f
npm install --save stackup
require('stackup');
try/catch
(也可以使用promise.catch(...)
)封装所有异步函数调用。然后,创建一个新的Error
对象并将其stack
属性添加到现有的堆栈中。如果对于所有异步函数调用都执行此操作,则会得到完整的堆栈跟踪。速度劣势(堆栈跟踪创建是昂贵的)对于异步函数不应该有太大影响(请勿在正常控制流程中使用异常)。 - Mörre