MST

星途 面试题库

面试题:Node.js 中 Async Hooks 如何捕获异步错误

请简述在 Node.js 里使用 Async Hooks 跟踪异步错误的基本流程,以及需要用到哪些核心的 API 方法来实现对异步操作错误的捕获和处理。
14.4万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

基本流程

  1. 引入模块:在 Node.js 项目中,首先要引入 async_hooks 模块,这是使用 Async Hooks 功能的基础。
  2. 创建异步钩子实例:通过 async_hooks.createHook() 方法创建一个钩子实例,该实例用于定义对不同异步事件的回调函数。
  3. 启用钩子:调用钩子实例的 enable() 方法,使钩子开始生效,从而能够捕获异步操作的各种事件。
  4. 在回调中处理错误:在钩子实例定义的回调函数(如 promiseRejection 等)中,对捕获到的异步操作错误进行相应处理。

核心 API 方法

  1. async_hooks.createHook(options):用于创建一个异步钩子实例,options 是一个对象,包含多个回调函数,比如 initdestroypromiseRejection 等,分别用于不同异步事件的处理。
  2. hook.enable():启用创建好的钩子实例,只有调用此方法后,钩子才能开始捕获异步事件。
  3. promiseRejection 回调:在 createHookoptions 中定义的 promiseRejection 回调函数,用于捕获 Promise 被拒绝(即发生错误)的情况,在该回调中可以进行错误处理。