MCPcopy Create free account
hub / github.com/dashnowords/imfe / _loadModule

Function _loadModule

chapter04/2.brief-require/require.js:121–137  ·  view source on GitHub ↗

* 模块加载方法 * @param {string} name 模块名称 * @param {string} path 外部脚本的加载路径

(name, path)

Source from the content-addressed store, hash-verified

119 * @param {string} path 外部脚本的加载路径
120 */
121 function _loadModule(name, path) {
122 //如果存在模块的缓存,表示已有同名模块
123 if(name !== 'root' && moduleCache[name]) return;
124 //如果没有缓存则进行首次加载
125 let script = document.createElement('script');
126 script.src = path + '.js';
127 script.async = true;
128 //初始化待加载模块缓存
129 moduleCache[name] = new Module(name,path);
130 //加载完毕后回调函数
131 script.onload = function(){
132 console.log(`${name}模块触发load事件`);
133 moduleCache[name].load = true;
134 _checkUnResolvedModules();
135 }
136 document.body.appendChild(script);
137 }
138
139 /**按栈顺序检查未执行的工厂函数,如果依赖全部加载完毕,则执行工厂函数 */
140 function _checkUnResolvedModules(){

Callers 2

_checkModulePathFunction · 0.85
require.jsFile · 0.85

Calls 1

_checkUnResolvedModulesFunction · 0.85

Tested by

no test coverage detected