我正在创建一个自定义Dojo模块,它从服务器返回一些数据。问题是我在模块定义中有一个AJAX函数,当请求完成时我无法从内部函数返回外部函数。如果我只是返回外部函数,它将在我从服务器获得响应之前返回。我不想让请求同步(即使它工作)因为那时我失去了异步模块加载的好处。我希望其他模块与此同时加载,但我希望它在返回之前等待完成。
这里的正确方法是什么?我应该尝试从内部函数返回外部函数吗?我已经对此进行了调查,似乎找不到任何东西。
非常感谢帮助!
define(["dojo/request","config/config"], function(Request, Config){
var imageTableId;
var req_opt = {handleAs:'json'};
Request.get(Config.RESTURL + "?f=json", req_opt).then(function(data){
for (var i = 0; i < data.tables.length; i++){
if (data.tables[i].name == "NotableTreeImageMap"){
imageTableId = data.tables[i].id;
return imageTableId;
}
}
},
function(error){
console.log(error);
});
//return imageTableId;
});