如何挂钩 SystemJs.import 的完整事件?

how to hook into complete event of SystemJs.import?

我的网页的onready函数是这样的:

$(function(){
    importJS();
    init();
});

我页面上的 importJS() 函数如下所示:

function importJS()
{
  // set js ref path
  SystemJS.config({
    baseURL: '/js/'
  });

  //load js modules
  SystemJS.import('Init.js');   
}

Init.js 库有一个 init() 函数,但是当我的 onready 函数运行时,init() 函数调用找不到 init() 函数。我逐步浏览了 Chrome Dev Tools,看起来 importJS() 在调用 init() 时尚未完成加载 Init.js。使这段代码工作的诀窍是什么?即如何确保在调用 init() 时 SystemJS 已完全加载 Init.js?

SystemJS.import return 是一个承诺,导入完成后调用 init() 的最简单方法是 return 来自 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');   
}