关于需要指导,Dojo官方文档说:
如果提供了配置对象,则会按照配置中的描述将其传递给配置API。接下来,解析依赖项中列出的依赖项(如果有)。 >最后,使用以> arguments
传入的已解析依赖项执行回调(如果有)
使用我的示例(下面),我想在主程序中使用users.json数据,但是不执行被调用模块(monModule.js)的回调,我获得了一个空对象。 我该怎么办? 谢谢你。
1)主程序(摘录)
<script type="text/javascript">
require(["monModule"],function(monModule){
console.log(monModule);// returns {}
});
</script>
2)被叫模块(monModule.js):
define(["dojo/request/xhr","dojo/json"],function(xhr,json){
xhr("users.json",{handleAs:"JSON"}).
then(function(data){console.log(return data;});
});
3)users.json
[
{‘ id’:"id1",’nom’:"nom1"},
{ ‘id’:"id2",’nom’:"nom2"},
{‘id’:"id3",’nom’:"nom3"}
]
答案 0 :(得分:0)
当时的调用也是异步的,所以这就是你要回到空对象的原因。你将不得不在你的模块中添加另一个延迟它来运行,然后在你的代码中添加
define( ["dojo/request/xhr","dojo/json" , "dojo/Deferred"], function( xhr, json , deferred) {
var def = new deferred();
xhr("users.json", { handleAs :"JSON" }).then(
function( data ) {
return def.resolve(data);
}
);
return def.promise;;
});
在Code中通过
获取它 require(["custom/monModule"],function(monModule){
monModule.then(function(users){
console.log(users);
});
});