Javascript 顶层等待在节点JS 14.15.3中不工作
我正在运行节点版本14.15.3Javascript 顶层等待在节点JS 14.15.3中不工作,javascript,node.js,Javascript,Node.js,我正在运行节点版本14.15.3 欢迎使用Node.js v14.15.3。 我认为现在可以在顶级脚本中使用wait,这很酷,所以我尝试了一下。让我不感到惊讶的是,它不起作用 const myfunc = async () => { return new Promise((res, rej) => { setTimeout(() => {res()},1000) }) } await myfunc(); SyntaxError:await仅在异
欢迎使用Node.js v14.15.3。
我认为现在可以在顶级脚本中使用wait
,这很酷,所以我尝试了一下。让我不感到惊讶的是,它不起作用
const myfunc = async () => {
return new Promise((res, rej) => {
setTimeout(() => {res()},1000)
})
}
await myfunc();
SyntaxError:await仅在异步函数中有效
在wrapSafe(内部/modules/cjs/loader.js:979:16)
at模块编译(内部/modules/cjs/loader.js:1027:27)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1092:10)
在Module.load(内部/modules/cjs/loader.js:928:32)
at Function.Module._load(内部/modules/cjs/loader.js:769:14)
在Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:72:12)
在internal/main/run_main_module.js:17:47
不知道还能说什么。它就是不起作用。。它坏了吗?它真的工作过吗?ECMAScript模块中的顶级等待工作。默认情况下,NodeJS不使用这些模块,而是使用CommonJS模块。有几种方法可以在节点项目中启用ES6模块,如下所述: 当传递给Node作为初始输入时,或当ES模块代码中的导入语句引用时,Node.js将以下内容视为ES模块:
- 以.mjs结尾的文件
- 当最近的父package.json文件包含值为“module”的顶级字段“type”时,文件以.js结尾
- 字符串作为参数传递到--eval或--print,或通过STDIN管道传递到节点,标记为--input type=module
constmyfunc=async()=>{
返回新承诺((res,rej)=>{
setTimeout(()=>{res(“Hello”)},1000)
})
}
console.log(等待myfunc());//在~1s后记录“Hello”
Deno支持顶级的wait,但据我所知,Node不支持tAh,我的坏,那么您使用的是commonjs还是es6模块?使用“webpack 5”