Node8中AsyncHooks异步生命周期
asyncId是一个自增的不重复的正整数,程序的第一个asyncId必然是1。每一个async scope中都有一个triggerAsyncId表示当前函数是由那个async scope触发生成的;通过 asyncId 和 triggerAsyncId 我们可以很方便的追踪整个异步的调用关系及链路。async_hooks.triggerAsyncId()用于获取triggerAsyncId,目前值为0。异步函数的生命周期当然实际应用中的async_hooks并不是这样使用的,他正确的用法是在所有异步任务创建、执行前、执行后、销毁后,触发回调,所有回调会传入asyncId。我们可以使用async_hooks.createHook来创建一个异步资源的钩子,这个钩子接收一个对象作为参数来注册一些关于异步资源生命周期中可能发生事件的回调函数。目前 createHook 函数可以接受五类 Hook Callbacks 如下:
用户评论