我在Ext.Ajax.request的成功中有一个功能。我需要这个函数返回一个带有JSON Store的变量。 我的代码是:
gridplatos.getStore().each(function(r){
var store;
Ext.Ajax.request({
params:{
grado: r.get('grado'),
menudiario: r.get('menudiario'),
plato: r.get('plato'),
transCode: Ext.getCmp('transCode').getValue()
},
url: 'src/Drivers/AlumnosPlatoArmado/',
method: 'GET',
success: function(response,store){
store = Ext.create('KMA.store.AlumnosPlatoArmado',{}).load();
}
});
console.log(store);
}
但是,console.log(store)返回“undefined”。有什么想法吗?
答案 0 :(得分:0)
这是因为ajax是一个异步函数调用,意味着一旦请求被发送到服务器,客户端将继续执行以下语句而不等待服务器响应。
在您的情况下,ajax请求会发送到src/Drivers/AlumnosPlatoArmado/
,然后在该时间点执行服务器回复console.log(store);
之前store
的值为undefined
。成功完成ajax请求后,将调用已注册的成功处理程序,您将设置store
的值。
在异步执行环境中,必须仅使用已注册的回调方法对async方法返回的值执行所有操作。