我需要了解AMD在dojo中的一种行为。 在下面的示例中,将首先执行语句1,然后执行语句2(如果已准备好)或domReady!没用过?
function test() {
var abc;
require(["dijit/registry"], function(registry){
//some modification of abc variable.
console.log("statement 1");----> statement 1
});
return abc;----> statement 2
}
提前致谢。
答案 0 :(得分:1)
Nope ...语句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
}
});