Ext JS 4.1.3:使用Ext.AJAX.Request返回值



这可能是一个愚蠢的问题,但是我在我的ext JS 4.1.3应用程序中一直在努力处理以下代码:

getInvestmentFee_Percentage : function() {
    var rVal = 0;
    Ext.Ajax.request({ 
        url : 'index.php/ajax/getcountryinvestmentfeepercentage/', 
        success : function(transport, json) {
             try {
                  var JSONResponse = Ext.JSON.decode(transport.responseText);
             } catch (e) {
                  return false;
             }
             if(JSONResponse.success == true || JSONResponse.success == "true") {
                  var investTax = 1+parseFloat(JSONResponse.results[0].constantValue);
                  console.log(investTax);
                  // TODO Return investTax
                  return investTax;
             } else {
                  return false;
             }
        },
        failure : function(transport, json) {
            return false;
        }
   });
    return rVal;
}

我试图写入rVal变量,但是由于Ext.Ajax.request是一个不同的对象,因此不会这样做。如何返回AJAX请求之外使用的值?我当然可以写给全球变量,但我怀疑这是正确的方法。

任何建议。

您根本无法这样做,因为getInvestmentFee_Percentage将在successfailure回调方法之前退出,但无论如何它们都处于不同的范围。

>

因此,只有(a)回调方法才能返回一个值,但这(最常见的是)在回调范围的范围内完成。可以肯定的是,您可以在当前函数中定义回调方法,但这将是相同的,您的方法将退出。

我想您应该在这里重新考虑您的实现。

  • 一种方法可以使用getInvestmentFee_Percentage的呼叫者的自定义事件
  • getInvestmentFee_Percentage的呼叫者发送回调(如果需要)作为参数,然后您可以使用

两者都可以工作。

最新更新