Mer*_*erc 5 javascript es6-modules
如果我有以下情况:
<script type="module" src="one.js"></script>
<script type="module" src="two.js"></script>
<script type="module" src="three.js"></script>
Run Code Online (Sandbox Code Playgroud)
three.js执行? one.jstwo.js但是,如果我有:
<script type="module">
import 'one.js'
import 'two.js'
import 'three.js'
</script>
Run Code Online (Sandbox Code Playgroud)
three.js执行?(这个很重要) one.jstwo.js我知道这看起来像是一个重复的问题,但请记住,这个问题的目的是确认通过 HTML 导入和通过 JavaScript 导入的截然不同的行为
我说的对吗,你不能 100% 确定 Three.js 会在 one.js 和 Two.js 之后执行?
是的,因为例如 Three.js 可能已经导入到 one.js 中,并且模块仅被评估一次。
我是否可以确信 Three.js 将在 one.js 和 Two.js 之后执行?(这个很重要)
不,原因与上述相同。
在导入模块的两种方式中,如果之前没有导入任何模块,那么将按照它们在标记或代码中出现的顺序对其进行评估。
在 ECMAScript 规范中,请参阅ModuleEvaluation方法,该方法迭代源文本模块记录的RequestedModules:
此记录表示的模块使用的所有 ModuleSpecifier 字符串的列表,用于请求导入模块。该列表是按源代码出现顺序排列的。
当使用带有 src 属性的脚本标签导入模块时,如果评估顺序并不重要,则可以使用async属性在下载后立即执行它。
| 归档时间: |
|
| 查看次数: |
757 次 |
| 最近记录: |