【发布时间】:2014-01-08 21:19:11
【问题描述】:
我正在使用 dojo 1.9 编写一个自定义模块,并且我有这段代码用于声明它:
define(["dojo/_base/declare", "dojo/store/JsonRest"], function(declare, JsonRest){
return declare(null, {
user: 'Not set',
constructor: function(id){
var store = new JsonRest({
target: "myurl"
});
store.get('user').then(function(item){
console.log(item.user);
this.user = item.user;
});
},
getUser: function(){
return this.user;
}
});
});
在另一个文件中,我使用以下代码:
require(["modules/demo/demo"], function(demo){
var x = new demo('7');
alert(x.getUser());
});
我明白我的问题:在 json/rest 调用完成之前调用 getUser() 函数,所以这个函数
alert(x.getUser());
总是返回“未设置”,因为 json 值仍未加载。如何让 getUser 函数等待它?
p.s.:我确信 json 休息请求运行良好,因为控制台日志没问题...
提前致谢
【问题讨论】: