Node.js中如何定义AsyncFunction?AsyncFunction未定义报错如何解决
原因
Node.js 完全支持 AsyncFunction,只是它没有像 Function 一样被挂载为全局对象,所以直接调用会抛出未定义错误。
解决方法
你可以通过任意异步函数的原型获取它的构造函数:
// 第一步:获取AsyncFunction构造函数 const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor // 第二步:使用和Function完全一致的语法创建异步函数 const addAsync = AsyncFunction('var1', 'var2', 'return var1 + var2') // 调用异步函数会返回Promise addAsync(1, 2).then(result => { console.log(result) // 输出 3 })
补充说明
不仅是 Node.js,浏览器端的 AsyncFunction 同样不属于全局暴露的对象,都需要用上述方式主动获取。
内容的提问来源于stack exchange,提问作者Daniele Testa
相关产品推荐
相关产品推荐

