2016-04-08 6 views
1

Ich habe eine Funktion mit einem Laden laden. Das heißt:Wie kann ich einen Wert aus der Funktion zurückgeben, nachdem der Speicher in ExtJs geladen wurde?

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; 
    }, 

}); 

}

Und ich brauche den zurückgegebenen Wert (das Array) an anderer Stelle (im Funktionsaufruf) zu erhalten, aber die Art und Weise, dass ExtJs arbeitet (async), kann ich‘ t bekomme das Array. Die folgenden Zeilen funktionieren nicht:

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

Wenn ich die Variable "estado" debuggen habe ich keinen Wert. Vielleicht erkläre ich die Situation nicht gut. Entschuldigung und danke.

+0

Mögliche Duplikat [Ajax Rückgabewert jQuery] (http://stackoverflow.com/questions/4982983/jquery-ajax-return-value) –

+0

die Lastaufnahmemittel auf eine Wrapper-Funktion einstellen, die den Speicher laden ruft Methode. Dadurch können Sie mit einem Variablenbereich innerhalb der Wrapper-Methode arbeiten, auf die Sie zugreifen können, wenn der Rückruf ausgelöst wird. – Hardrada

Antwort

-1

Haben Sie versucht:

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

Sie auf falsche Art und Weise zu denken. Sie rufen nur eine Methode am Ende Ihrer Callback-Methode mit Ihrer Variablen auf.

Genau so;

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); 
     }, 
    }); 
Verwandte Themen