2015-08-31 28 views
0

我想知道是否有一種方法來實例化requirejs模塊,只有當它的所有依賴項都準備就緒時。準備好了什麼意思?推遲requirejs模塊實例化,直到依賴關係準備好

比方說,我有模塊a和模塊b。模塊a取決於b。當它將獲取一些數據時,模塊b將準備就緒。

//inside module b 
define([], function() { //fetch data }); 

//inside module a 
define(['b'], function (b) { //do something with b }); 

是否有可能只運行模塊的a回調時b獲取需要的數據(或其他完成異步操作)?

例如,我想從模塊b返回一個承諾,表示requirejs需要等待,直到此承諾解決,然後再繼續。

我想要這個,因爲我想避免檢查模塊b是否在每個依賴它的單個模塊中準備好。

回答

-1

未驗證:我想你可能能夠實現與嵌套異步定義:

//inside module b 
define("bOuter", [], function() { 
    // fetch data 
    fetchDataAsync(function(result) { 
     define("b", [], function() 
     { 
     // real module "b" here. 
     }); 
    }); 
});