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