0

Dojo での AMD の動作を 1 つ理解する必要があります。以下の例では、ready または domReady! の場合、ステートメント 1 が常に最初に実行され、次にステートメント 2 が実行されます。使用されていない?

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

前もって感謝します。

4

1 に答える 1

1

いいえ...ステートメント1は、dijit/registryがロードされると起動されます。ステートメント 2 に達したときに、これが当てはまるという保証はありません。

require コールバック内のステートメントのみが順番に起動することが保証されます。

上記は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  
    }
});
于 2013-06-25T16:11:38.247 に答える