首页 > 解决方案 > 如何在节点中定义 AsyncFunction?

问题描述

我正在尝试在节点中定义一个 AsyncFunction(请注意大 F),如下所述:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction

但我得到:

AsyncFunction('var1', 'var2', 'let test=var1+var2') (1, 2)
ReferenceError: AsyncFunction is not defined

创建一个普通的 Function 对象可以正常工作。NodeJS 不支持 AsyncFunction 吗?

标签: javascriptnode.js

解决方案


我认为您从根本上提出的问题是定义异步函数的语法是什么,而不是真正尝试调用该对象的构造函数。

如果是这样,那么:

同步:

function foo()

异步:

async function bar()

更新:理解您的评论后,我鼓励您重新阅读规范: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction

它清楚地描述了它不是一个全局范围的对象。下面列出的示例也描述了它的用法,这也强化了在使用之前必须(本地)分配它的想法,因此有一个定义。


推荐阅读