一尘不染

Extjs,返回Ajax返回值

ajax

我在使用Ajax时遇到问题。

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

问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。

有没有办法使正确的返回响应值?

谢谢!


阅读 266

收藏
2020-07-26

共1个答案

一尘不染

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

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

一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方法将值传递到需要去的地方:

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