执行挂钩后的System.js

时间:2015-09-14 18:18:03

标签: javascript es6-promise jspm systemjs es6-module-loader

在我的项目中我有很多所谓的javascript'服务',服务有以下结构:

var serviceA = function(){
    this.init(); // service initialization code
    this.load = function(){
        return asyncLoadA(); // returns promise, for example service is asynchronously reading data
                             // required for it's work from file or webSql
    }
}

var serviceB = function(depA){
    this.init(depA.data);
    this.load = function(){
        return asyncLoadB(depA.data);
    }
}

var a = new serviceA(), b;
a.load().then(function(){
    b = new serviceB(a).load();
})

因此,服务依赖于彼此并具有异步加载功能,并且只有在加载依赖项时才能创建依赖服务。上面的示例是一个纯JavaScript,但可以很容易地重写为ES6模块。

是否可以通过system.js插件加载此类服务(我不想修改system.js库源)?我只需要延迟模块执行,直到它的依赖关系没有准备好。似乎实例化钩子对它不好,因为我仍然希望标准的ES6链接和执行工作。

0 个答案:

没有答案