2016-04-08 12 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には動作する方法(非同期)のために、私ができる:それはあります配列を取得します。次の行は機能しません。

変数「estado」をデバッグすると、値はありません。たぶん私は状況を良い方法で説明していないかもしれません。ごめんなさい、ありがとう。

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

可能重複[jQueryのAJAXの戻り値(http://stackoverflow.com/questions/4982983/jquery-ajax-return-value) –

+0

ストア負荷を呼び出すラッパー関数への負荷ハンドラを設定します方法。これにより、コールバックが発生したときにアクセスして設定できるラッパーメソッド内の可変スコープで作業することができます。 – Hardrada

答えて

-1

は、あなたがしようとしています。変数を使ってコールバックメソッドの最後にメソッドを呼び出すだけです。

このように、

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

をあなたは間違った方法で思考:

関連する問題