node.js - Node.js 中的 async wait 和 async_hooks 有什么区别

标签 node.js ecmascript-2017 async-hooks

async_hooks在 Node v8 中作为实验引入。因为名字类似于ES2017 async看起来它们可能在某种程度上相关。他们是吗?如果是,以什么方式(互补或竞争)?

最佳答案

async_hooks API使您可以更轻松地跟踪您的资源。首先使用以下任一可选对象对其进行初始化:initbeforeafterdestroy。获取资源会触发这些回调之一。 async_hooks 的目的是允许更好地跟踪异步资源及其回调。

async wait 允许您以更熟悉的同步方式编写包含基于 Promise 的异步部分的代码。

例如:

async function Double() {
  let result = await PromiseWhichReturnsNumber();

  return result * 2;
}

在上面的async函数中,该函数将在PromiseWhichReturnsNumber()处暂停执行,直到promise得到解决(并且结果被分配给result) >)。

这两个概念正在解决不同的问题:

  1. async wait 允许您以“同步”方式编写 Promise。
  2. async_hooks 允许您跟踪异步资源。

关于node.js - Node.js 中的 async wait 和 async_hooks 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49928417/

相关文章:

javascript - Rest API,在路由中哪里放置大量计算?

android - Android 设备上的 Ionic 应用程序实时重新加载失败 : connection to the server was unsuccessful

javascript - Node + Json 验证键嵌套数组

node.js - Express Passport (node.js) 错误处理

javascript - 等待多个并发 await 操作

JavaScript 默认等待而不是手动等待

javascript - Deno 有办法跟踪异步上下文吗?

node.js - 是否有任何 npm 模块使用 async_hooks 来检索异步堆栈跟踪?