ES9 中的错误追踪:在调试时使用 async stack traces

阅读时长 4 分钟读完

在前端开发中,调试是一个非常重要的环节,而错误追踪则是调试中最为关键的一个环节。因为一旦代码出现了错误,如果无法快速找到错误原因,将会浪费大量的时间和精力。ES9 中新增的 async stack traces 功能,可以帮助开发人员更快速地找到错误原因。

async stack traces

在 ES9 中,当代码出现异常时,错误调用栈中将包含异步函数的信息,即 async stack traces。这个功能非常重要,因为在使用异步函数时,错误信息通常会淹没在回调嵌套中,而 async stack traces 可以展示每个异步调用的位置,简化错误追踪的过程。

下面是一个简单的示例,展示了如何利用 async stack traces 进行错误追踪。

-- -------------------- ---- -------
----- -------- ----- -
  ----- --- --------
-

----- -------- ----- -
  ----- ------
-

----- -------- ----- -
  ----- ------
-

----- -------- ------ -
  --- -
    ----- ------
  - ----- ------- -
    ---------------------
  -
-

-------

上面的代码中,main 函数调用了 baz 函数,而 baz 函数调用了 bar 函数,bar 函数又调用了 foo 函数,最终 foo 函数抛出了一个错误。如果没有 async stack traces,我们只能得到一个简单的错误信息,无法知道错误是在 foo 函数中发生的。但有了 async stack traces,我们可以得到更多的信息,如下所示:

-- -------------------- ---- -------
-----
    -- --- --------------
    -- --- ---------------
    -- --- ----------------
    -- ---- ---------------
    -- ------------------ ---------------
    -- --------------- ----------------------------------------
    -- ----------------------------- ----------------------------------------
    -- ----------- ---------------------------------------
    -- --------------------- ---------------------------------------
    -- ------------------------------ --- -------- ------------------------------------

我们可以从这个调用栈中看到每个异步函数的位置,从而更加容易地追踪错误。

如何使用 async stack traces

虽然 async stack traces 可以帮助我们快速追踪错误,但它并不是默认开启的。如果要使用 async stack traces,需要在 node.js 的环境变量中设置 NODE_OPTIONS="--async-stack-traces",或者在 chrome 浏览器中使用以下代码开启:

值得注意的是,虽然 async stack traces 可以帮助我们快速追踪错误,但也有可能会导致一些性能问题。因此,建议只在调试模式下开启 async stack traces。

总结

ES9 中新增的 async stack traces 功能可以帮助我们更快地追踪异步代码中的错误,从而提高开发效率。虽然使用起来非常简单,但开发人员需要注意,它只适用于调试模式,不建议在生产环境中使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65a78a01add4f0e0ff0aca17

纠错
反馈