-1

我在一个函数中成功了一个Ext.Ajax.request。我需要这个函数返回一个带有 JSON 存储的变量。我的代码是:

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) 返回“未定义”。任何的想法 ?

4

1 回答 1

0

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

在您的情况下,在该时间点执行src/Drivers/AlumnosPlatoArmado/服务器响应返回之前,将 ajax 请求发送到then具有 value 。成功完成 ajax 请求后,将调用注册的成功处理程序,您将在其中设置.console.log(store);storeundefinedstore

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

于 2013-03-22T12:12:45.840 回答