Extjs,返回Ajax返回值

时间:2011-08-02 19:55:17

标签: ajax extjs

我使用Ajax时遇到问题。

function GetGrantAmazonItemCnt(){
    var cnt;
    Ext.Ajax.request({
        url : '',
        params : {},
        success :function(response){
            cnt = response.responseText;
        }
    });
    return cnt; 
}

问题是,在获得ajax响应之前,它返回cnt。 所以它总是返回NULL。

有没有办法确定正确的回复价值?

谢谢!

1 个答案:

答案 0 :(得分:6)

因为AJAX请求是异步的,所以cnt变量将在请求返回之前返回并调用成功处理程序。

我建议您重构代码以解决此问题。

执行此操作的一种方法是从AJAX请求的成功处理程序中调用调用GetGrantAmazonItemCnt()的函数,这样就可以将值传递到需要的位置:

function GetGrantAmazonItemCnt(){
    var cnt;
    Ext.Ajax.request({
        url : '',
        params : {},
        success :function(response){
            cnt = response.responseText;
            FunctionThatCalledMe(cnt);
        }
    });
}