2016-04-08 51 views
1

我有一个存储负载的函数。那就是:在ExtJs中加载商店后,如何从函数返回值?

function PdCtrl_Posicionamiento_RegistrarPosicion(numeroPrograma, tren, fechaTren, ramal, secuenciaEstacion, kilometraje, hora, minuto, tipoOrigen, eliminaDependencia) { 



storePdCtrl_Posicionamiento_RegistrarPosicion.load({ 
    params: { 
     numeroPrograma: numeroPrograma, 
     tren: tren, 
     fechaTren: fechaTren, 
     ramal: ramal, 
     secuenciaEstacion: secuenciaEstacion, 
     kilometraje: kilometraje, 
     hora: hora + ":" + minuto, 
     tipoOrigen: tipoOrigen, 
     eliminaDependencia: eliminaDependencia, 
     usuario: NOMBRE 
    }, 
    callback: function() { 

     var estado = new Array(); 
     var err = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('ESTADO'); 
     var mensaje = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('MENSAJE'); 

     estado.push(err); 
     estado.push(mensaje); 

     return estado; 
    }, 

}); 

}

而且我需要在其他地方返回的值(阵列)(在函数调用),但是对于ExtJS的工作方式(异步),我可以”得到数组。以下行不起作用:

var vl_estado = PdCtrl_Posicionamiento_RegistrarPosicion(numeroPrograma, tren, fechaTren, ramal, secuenciaEstacion, kilometraje, hora, minuto, tipoOrigen, eliminaDependencia); 
    console.debug("estado:" + vl_estado); 

当我调试变量“estado”我没有任何价值。也许我不会以很好的方式解释这种情况。对不起,谢谢。

+0

的可能的复制[jQuery的AJAX返回值](http://stackoverflow.com/questions/4982983/jquery-ajax-return-value) –

+0

设置负荷处理程序它调用存贮器装入一个包装函数方法。这将允许您在wrapper方法内使用变量作用域,您可以在回调触发时访问和设置它。 – Hardrada

回答

-1

你试过:

callback: function (records) { 
    if (records.length > 0) { 
     var estado = new Array(); 
     var err = records[0].get('ESTADO'); 
     var mensaje = records[0].get('MENSAJE'); 
     estado.push(err); 
     estado.push(mensaje); 
     return estado; 
    } else { 
     return null; 
}, 
0

你在错误的方式思考。你只需在变量的回调方法结束时调用一个方法即可。

就像这样;

var doSomeThingWithVariable = function(passedVariable){ 
    alert(passedVariable); 
};  
storePdCtrl_Posicionamiento_RegistrarPosicion.load({ 
     params: { 
      numeroPrograma: numeroPrograma, 
      tren: tren, 
      fechaTren: fechaTren, 
      ramal: ramal, 
      secuenciaEstacion: secuenciaEstacion, 
      kilometraje: kilometraje, 
      hora: hora + ":" + minuto, 
      tipoOrigen: tipoOrigen, 
      eliminaDependencia: eliminaDependencia, 
      usuario: NOMBRE 
     }, 
     callback: function() { 

      var estado = new Array(); 
      var err = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('ESTADO'); 
      var mensaje = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('MENSAJE'); 

      estado.push(err); 
      estado.push(mensaje); 

      doSomeThingWithVariable(estado); 
     }, 
    });