我一直都想了解seajs是如何确保模块内的require方法先执行,然后再执行require后的代码
比如,我先引用了index.js
seajs.use('./js/index.js');
然后在index.js中引用a.js,
然后打印一段内容
seajs.use('./a.js');
console.log('hello');
在a.js中也打印了一段内容:
console.log('aaa');
而最终得到的结果是:
aaa //先输出a.js
hello //再输出hello.js
我知道这个结果是基于seajs对模块的依赖处理,也看过一些相关的原理介绍,但还不是很明白
为何在index.js的require('./a.js')
,会先去解析a.js并执行其中的代码,然后再执行后面的代码(console.log('hello');
)
肯定是这样的啊,seajs.use的核心原理就是用script标签加载use里指定的脚本,而script标签是加载完就会执行的