【发布时间】:2020-09-25 09:18:37
【问题描述】:
我正在尝试在 Qt 的网络引擎中运行包含 await 的 Javascript 代码。这是一个说明我正在尝试做的最小示例:
QWebEngineView webView;
webView.page()->runJavaScript("await (new Promise(r => setTimeout(r, 100)))");
问题是,当我运行它时,我收到以下 Javascript 错误(Qt 在 Qt Creator 的控制台中记录):
js: Uncaught ReferenceError: await is not defined
当我第一次看到这个时,我以为是因为 Qt Web Engine 使用了不支持 await 的旧版 Chromium。但是使用my answer here的方法,我发现它使用的Chromium版本是Chromium 80,根据caniuse,await在Chromium 55及更高版本中支持,所以应该在Chromium中支持80.
所以我的问题是,为什么即使它使用应该支持 await 的 Chromium 版本,我也会收到此错误,我该如何解决?
【问题讨论】:
-
await 仅在
async的函数中定义 - 虽然有一个顶级 await 的标志,但下面的答案是好的 -
@JaromandaX 你知道如何启用顶级等待吗?我检查了
QWebEngineSettings,但在那里找不到任何东西。 -
可能不在你所处的环境中
标签: javascript qt async-await chromium qtwebengine