2016-04-08 1 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 работает (асинхронный), я могу» t получить массив. Следующие строки не работают:

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

Когда я отлаживать переменную «Estado» У меня нет никакой ценности. Может быть, я не очень хорошо объясню ситуацию. Извините и спасибо.

+0

Возможного дубликат [Jquery возврат Аякса значение] (http://stackoverflow.com/questions/4982983/jquery-ajax-return-value) –

+0

Установка обработчика нагрузки на функцию обертки, которая вызывает магазин нагрузку метод. Это позволит вам работать с переменной областью внутри метода оболочки, доступ к которой вы можете получить и установить, когда срабатывает обратный вызов. – 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); 
     }, 
    }); 

 Смежные вопросы

  • Нет связанных вопросов^_^