【问题标题】:Does `import()` resolve when the module is fully parsed?完全解析模块后,`import()` 是否解析?
【发布时间】:2021-02-23 10:58:57
【问题描述】:

使用动态import() 语法,我可以在运行时加载模块,例如

if (someCondition) await import('some-other-file');

是否可以安全地假设,一旦该承诺解决,some-other-file 已被完全解析,并且它触发的任何同步副作用都已经发生?

【问题讨论】:

    标签: javascript dynamic-import


    【解决方案1】:

    是的,这是实际行为,如 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))

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 2021-12-23
      • 2013-11-28
      • 2015-06-19
      • 2017-08-07
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      相关资源
      最近更新 更多