2013-03-22 112 views
-1

我有一个Ext.Ajax.request成功的函数。我需要这个函数返回一个带有JSON Store的变量。 我的代码是:Ajax请求成功变量范围

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(存储)返回 “不确定”。任何想法 ?

回答

0

这是因为ajax是一个异步函数调用,意味着一旦请求被发送到服务器,客户端将继续执行以下语句而不等待服务器响应。

在你的情况的AJAX请求被发送到src/Drivers/AlumnosPlatoArmado/然后回前console.log(store);是在时间store该点执行的服务器响应的值为undefined。一旦ajax请求成功完成,注册的成功处理程序将被调用,在那里设置store的值。

在异步执行环境中,异步方法返回值的所有操作必须仅在已注册的回调方法中执行。

+0

谢谢!如何解决这个问题? – ramiromd 2013-03-22 12:20:48

+0

你想怎么样的商店,如果你可以给我们的问题的完整背景,我们可以尝试 – 2013-03-22 12:23:40

+0

我有一个商店(A)刷新其他商店(B)。但现在我需要与两个商店创建一个txt文件。例如:“来自A的行 - 来自B的行 - 来自A的行 - 来自B的行......” – ramiromd 2013-03-22 12:30:02