【问题标题】:What is the difference between async await and async_hooks in Node.jsNode.js 中的 async await 和 async_hooks 有什么区别
【发布时间】:2019-02-07 19:13:26
【问题描述】:

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

【问题讨论】:

  • 非常有趣。似乎用于跟踪异步调用状态。

标签: node.js ecmascript-2017 async-hooks


【解决方案1】:

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

async await 让您以更熟悉的同步方式编写代码,其中包含基于 Promise 的异步部分。

例如:

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

  return result * 2;
}

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-25
    • 2012-03-20
    • 1970-01-01
    • 2021-11-05
    • 2019-08-19
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多