我的网页的onready功能如下所示:
$(function(){
importJS();
init();
});
我页面上的importJS()函数如下所示:
function importJS()
{
// set js ref path
SystemJS.config({
baseURL: '/js/'
});
//load js modules
SystemJS.import('Init.js');
}
Init.js lib有一个init()函数,但是当我的onready函数运行时,init()函数调用找不到init()函数。我逐步完成了Chrome Dev Tools,看起来importJS()在init()被调用时还没有完成加载Init.js。使这段代码有效的诀窍是什么?即如何在init()被调用时确保SystemJS已经完全加载了Init.js?
答案 0 :(得分:0)
SystemJS.import
返回一个承诺,导入完成后调用init()
的最简单方法是从importJS()
返回该承诺,并在其init()
中调用then
回调:
$(function(){
importJS().then(function() {
init();
}
});
function importJS()
{
// set js ref path
SystemJS.config({
baseURL: '/js/'
});
//load js modules
return SystemJS.import('Init.js');
}