【发布时间】:2021-02-23 10:58:57
【问题描述】:
使用动态import() 语法,我可以在运行时加载模块,例如
if (someCondition) await import('some-other-file');
是否可以安全地假设,一旦该承诺解决,some-other-file 已被完全解析,并且它触发的任何同步副作用都已经发生?
【问题讨论】:
使用动态import() 语法,我可以在运行时加载模块,例如
if (someCondition) await import('some-other-file');
是否可以安全地假设,一旦该承诺解决,some-other-file 已被完全解析,并且它触发的任何同步副作用都已经发生?
【问题讨论】:
是的,这是实际行为,如 MDN Docs 中所写
带有数据 URL 的演示:
const code = "window.foo = 'bar';";
const importString = `data:application/javascript;charset=utf-8;base64,${btoa(code)}`;
import(importString).then(() => console.log(foo))
【讨论】: