大佬教程收集整理的这篇文章主要介绍了javascript – ES6导入的定义执行顺序是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import "one" import "two" console.log("three");
其中one.js和two.js定义如下:
// one.js console.log("one"); // two.js console.log("two");
控制台输出是否保证是:
one two three
还是未定义?
<script>
tags不同,具有async属性. ES6模块在加载时更接近
AMD specification.有关详细信息,请参阅Axel Rauschmayer探索ES6的
section 16.6.1.
所以,在上面提供的例子中,执行顺序是无法保证的.有两个可能的结果.你可能会看到:
one two three
或者你可能会看到:
two one three
换句话说,两个导入的模块可以按任何顺序执行其console.log()调用;它们彼此是异步的.但是它们一定会在导入脚本之前执行,所以“三”保证最后被记录.
也就是说,no modern browser implements ES6 modules.我不知道像Babel这样的透明胶片是否遵循这方面的原始规格.
更新
在下面的@BenjaminGruenbaum’s评论中,我决定更仔细地研究一下.尽管有上述的来源,我在specification itself中没有明确指出模块加载是异步的(尽管不可否认,作为英语母语者,我发现这个规范有点难看).如果是这种情况,则执行导入的顺序将取决于实现.也就是说,同样的结论是:您不能指望以任何特定顺序执行的进口.
以上是大佬教程为你收集整理的javascript – ES6导入的定义执行顺序是什么?全部内容,希望文章能够帮你解决javascript – ES6导入的定义执行顺序是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。