2013-06-25 39 views
0

我需要理解dojo中的AMD行爲。 在下面的例子中,語句1總是先執行,然後語句2如果準備好或者domReady!不曾用過?需要了解dojo中的AMD行爲

function test() { 
    var abc; 
    require(["dijit/registry"], function(registry){ 
    //some modification of abc variable. 
    console.log("statement 1");----> statement 1 
    }); 
    return abc;----> statement 2 
    } 

在此先感謝。

回答

1

不會......聲明1將在dijit/registry加載後觸發。無法保證在達到陳述2時會出現這種情況。

只有您的需求回調中的語句才能按順序觸發。

即使您使用ready或domReady,上述內容仍然有效!

你做嘗試以下揭露全球的功能:

require(["dojo/_base/kernel", "dijit/registry"], function(kernel, registry){ 
    kernel.global.test = function(){ 
     var abc; 
     //some modification of abc variable. 
     console.log("statement 1");----> statement 1 
     return abc;----> statement 2 
    } 
}); 
+0

謝謝...其實我需要暴露在函數名全球範圍內,如果我添加功能到AMD我不能夠訪問該功能有任何方法來做到這一點,我也試圖在模塊本身添加return statement2,但它沒有返回任何值。你能幫我解決這個問題嗎? – user1716006

+0

查看我的更新回答... – Philippe

+0

thanks..its working .. – user1716006