1

この小さなサンプル アプリでは、なぜindex-b.js前に実行されているのindex-c.jsでしょうか?

index-cは の依存関係でありindex-a、のindex-a前にロードするセットであるため、を最初に実行する必要がindex-bあるように思えます。index-c

/* index.js */
define([ "./index-a", "./index-b" ], function(){    
    console.log("index executing");    
});

/* index-a.js */
define([ "./index-c" ], function(){    
    console.log("index-a executing");    
});

/* index-b.js */
define(function(){    
    console.log("index-b executing");    
});

/* index-c.js */
define(function(){    
    console.log("index-c executing");    
});

実行例: http://fitzgeraldmedia.net/requirejs/index.html (コンソールを確認)

4

2 に答える 2

3

index.js の define() 呼び出しでのモジュールの順序は、同期依存関係を意味するものではないため、index-a は実際には index-b の前に「ロードするように設定」されていません。index.js での define() 呼び出しは、コールバック関数のコードが index-a と index-b に依存していることを示しているだけです。index-b が index-a に依存している場合、index-b はその define() 呼び出しで依存関係として index-a をリストする必要があります。

したがって、index.js ファイルは次のようになります。

define([ "./index-b" ], function(){

    console.log("index.js executing");
});

index-b.js ファイルは次のようになります。

define([ "./index-a" ], function(){

    console.log("index-b.js executing");

});
于 2013-06-03T20:58:14.680 に答える