8
基本的に、「サブ」モジュールはオブジェクトを作成し、そのオブジェクトは「メイン」モジュールであるユーティリティライブラリの一部でなければなりません。しかし、「サブ」オブジェクトは、「メイン」からユーティリティにを依存しますRequire.jsの循環依存を解決するには?
// Main module
define(['sub'], function(sub) {
var utils = {
utilityMain: function() {
// ...
};
// ...
};
tools.subModule = sub;
return tools;
});
// Sub module
define(['main'], function(main) {
return new (function() {
// Singleton object using functions in main module
var somestuff = function() {
main.utilityMain();
// etc
};
})();
});
はどうやって地球全体を飲み込むだろうブラックホールを作成せずにrequire.jsでこれを達成することができますか?
ありがとうございました。
"デザインを再考する"、私は完全に同意しますが、それは現時点では少し緊密です。私はすでに調査し、あなたが提案しているものを見てきました...私は過去2日間、 'exports'オブジェクトの周りを頭で覆そうとしていました。ファクトリ関数が実行を再開すると 'export'が' define'/'require'に返されると思いましたか? 2番目の見方では、 'main'は' sub'が再開すると実行を再開するべきだと示唆しているようです。 – pilau
あなたが本当にこれらのことがすべて起こる秩序を描くことができれば、本当に感謝します。私は、これが私の問題を解決するこの回避策を把握していないところだと思います。ありがとう! – pilau
'exports'を使うと各モジュールが' undefined'の代わりに何らかのオブジェクトへの参照を持つことができます。どちらのモジュールの_functions_もすぐに使用することはできませんが、実行時に参照が正しく設定されることを確認できます。両方のモジュール定義が並行して実行されていると考えてください。彼らは両方とも、他のモジュールのどこを見るべきかを知っていますが、両方が完了するまで相互に作用することはありません。 – freejosh