seajs如何做到让模块内的require先执行,再执行后面的代码

我一直都想了解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');)

阅读 2.2k
1 个回答

肯定是这样的啊,seajs.use的核心原理就是用script标签加载use里指定的脚本,而script标签是加载完就会执行的

推荐问题