如何在ExtJs中加载商店后从函数返回值?

时间:2016-04-08 17:25:01

标签: extjs store

我有一个带有商店负载的功能。那就是:

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"我没有任何价值。也许我不能以一种好的方式解释这种情况。对不起,谢谢。

2 个答案:

答案 0 :(得分: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);
        },
    });

答案 1 :(得分:-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;
},