顶层等待在 ECMAScript 中不起作用
Top level await not working in ECMAScript
我很困惑,因为我读到 ESM 支持顶级等待,但是当我在 html 文件中尝试它时它不起作用?
我发现是说:
“顶级等待仅适用于 ESM 模块”
ESM 是否支持顶级 await 以及如何使用它。
document.getElementById('foo').innerHTML = 'hello1';
await pause(2000); // is this possible if so how
document.getElementById('foo').innerHTML = 'hello2';
是的,它在 ESM - ES6 模块中受支持。它不在普通脚本标签中受支持。
<script>
await Promise.resolve();
</script>
您需要指定该脚本是一个模块才能运行。
<script type="module">
await Promise.resolve();
console.log('finished successfully');
</script>
(还要确保您 运行 这是在受支持的环境中 - 较旧的环境可能不支持顶级等待)
我很困惑,因为我读到 ESM 支持顶级等待,但是当我在 html 文件中尝试它时它不起作用?
我发现是说:
ESM 是否支持顶级 await 以及如何使用它。
document.getElementById('foo').innerHTML = 'hello1';
await pause(2000); // is this possible if so how
document.getElementById('foo').innerHTML = 'hello2';
是的,它在 ESM - ES6 模块中受支持。它不在普通脚本标签中受支持。
<script>
await Promise.resolve();
</script>
您需要指定该脚本是一个模块才能运行。
<script type="module">
await Promise.resolve();
console.log('finished successfully');
</script>
(还要确保您 运行 这是在受支持的环境中 - 较旧的环境可能不支持顶级等待)