当前位置: 首页 > 知识库问答 >
问题:

顶级等待在最新的Node.js中不起作用

石思淼
2023-03-14

Node.js(2020年1月,Node.js13.5.0)是否仍然不支持顶级wait

我试过一些教程,比如这一个,但仍然不走运,总是出现同样的错误:

D:\NodeJS>node --experimental-modules test.js
(node:17724) ExperimentalWarning: The ESM module loader is experimental.
file:///D:/NodeJS/test.js:9
await test();
^^^^^

SyntaxError: Unexpected reserved word

整个文件内容:

function test() {
}

await test();

我已经尝试使用类型:模块package.json,并将文件重命名为test.mjs,但仍然相同的错误,即使与最新的Node.js13.5.0

我做错了什么?

共有3个答案

唐默
2023-03-14

我不知道为什么,但要获得--harmony特性,如您需要使用--eval(-e)或--print(-p),而不是仅仅启动节点,如node-e“import('./test.mjs')”--实验模块--输入类型=模块--harmony顶级等待

文件-内容:

console.log(await Promise.resolve("test"));

慰问:

node -e "import('./test.mjs')" --experimental-modules --input-type=module --harmony-top-level-await
(node:9096) ExperimentalWarning: The ESM module loader is experimental.
test

丁星火
2023-03-14

node——实验性repl wait适用于节点repl

岳浩
2023-03-14

根据这个问题跟踪器和这篇博客文章,顶层等待在节点v13.3中位于标志-和谐-顶层-等待后面。您启用的模块标志仅适用于ESM模块,而不适用于顶级等待。

 类似资料:
  • 我在运行节点版本14.15.3

  • 问题内容: 我正在学习Java Maven Selenium。我想要在Selenium中使用这样的东西。 打开网站(例如https://www.facebook.com) 单击登录的电子邮件字段 等待20秒 输入我的电子邮件 这是我的简单代码: 该代码不起作用。它只会打开Facebook,单击电子邮件字段并输入我的电子邮件ID,而不是等待10秒钟才输入我的电子邮件。 问题答案: 并且无法正常工作,

  • 问题内容: 这是我第一次使用selenium和无头浏览器,因为我想使用ajax技术来爬网某些网页。 效果很好,但是在某些情况下,加载整个页面会花费太多时间(尤其是当某些资源不可用时),因此我必须为selenium设置超时时间。 首先,我尝试了和,但是当我设置这些超时时,如果页面未完全加载,我将不会得到任何页面源,如下代码所示: 所以我尝试使用隐式等待和条件等待,如下所示: 这次我得到了想要的内容。

  • 问题内容: 我正在学习Java Maven Selenium。我希望在Selenium中使用。 打开网站(例如https://www.facebook.com) 单击登录的电子邮件字段 等待20秒 输入我的电子邮件 这是我的简单代码: 该代码不起作用。它只会打开Facebook,单击电子邮件字段并输入我的电子邮件ID,而不是等待10秒钟才输入我的电子邮件。 问题答案: 并且无法正常工作,他们将在指

  • 问题内容: 这些是我的示例文件: t1.js: t2.js: 当我在Firefox 46中加载页面时,它返回“ SyntaxError:导入声明可能仅出现在模块的顶层” –但是我不确定import语句可以在此处获得多少顶层。此错误是红色鲱鱼吗,并且尚不支持导入/导出吗? 问题答案: 实际上,您得到的错误是因为您需要明确声明您正在加载模块-只有这样,才允许使用模块: 。推荐阅读。 这些浏览器版本(及

  • 以下是我的示例文件: T1.js: T2.js: 当我在Firefox46中加载该页面时,它返回“SyntaxError:import declarations Mays only Account at top level of a module”--但我不确定import语句在这里还能达到多少顶级。这个错误是不是一个错误,是不是还不支持导入/导出?