Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 顶层等待在节点JS 14.15.3中不工作_Javascript_Node.js - Fatal编程技术网

Javascript 顶层等待在节点JS 14.15.3中不工作

Javascript 顶层等待在节点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仅在异

我正在运行节点版本14.15.3

欢迎使用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

如果您使用上述方法之一在项目中启用ES6模块,那么您将能够使用顶级WAIT:

script.mjs(注意.mjs):

constmyfunc=async()=>{
返回新承诺((res,rej)=>{
setTimeout(()=>{res(“Hello”)},1000)
})
}
console.log(等待myfunc());//在~1s后记录“Hello”

Deno支持顶级的wait,但据我所知,Node不支持tAh,我的坏,那么您使用的是commonjs还是es6模块?使用“webpack 5”