javascript - ES6中同步加载运行时确定名称的模块

标签 javascript module ecmascript-6 ecmascript-harmony

使用 CommonJS,require 调用是同步的,可以轻松地动态加载模块,如下所示:

require('./' + localModulePath);

ES6 引入了 System.import ,它返回一个 Promise,而标准的 import 似乎不允许在运行时确定名称。这是 ES6 模块中缺少的 CommonJS 功能还是我缺少某些东西?

最佳答案

Is this a feature of CommonJS that is missing with ES6 modules or am I missing something?

我不这么认为。模块加载过程是异步的,这一事实允许您在不同的环境中使用相同的方式。例如。在浏览器中,不可能同步加载模块,或者至少我们想避免它,因为在 JS 中同步获取资源是不好的。

但是,import 语法给您同步加载的印象。这是一个经过深思熟虑的决定,使语句可静态分析,以便环境可以在执行脚本之前以他们想要的方式加载所有依赖项。

关于javascript - ES6中同步加载运行时确定名称的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28014605/

相关文章:

javascript - 提交后验证效果不佳

javascript - 将视频源对象推送到 Jwplayer Multiple Sources 对象

java.lang.SecurityException : Cannot set up certs for trusted CAs (JBoss AS 7)

c++ - 如何在 C++ 代码中调用模块中包含的 Fortran90 函数?

javascript - 为什么要使用导出和导入?

javascript - Object.defineProperty 覆盖只读属性

javascript - 向对象添加方法

Javascript new RegExp(),从 JSON 中读取模式

mli 文件的模块别名

javascript - gulp 将 React 模块转换为类错误