1

在我的项目中,我有很多所谓的 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 链接和执行工作。

4

0 回答 0