Extjs,返回Ajax返回值

Exp*_* be 2 ajax extjs

我在使用Ajax时遇到问题.

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

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

有没有办法做出正确的回报回复价值?

谢谢!

hsp*_*ain 6

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

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

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

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