Extjs, вернуть возвращаемое значение Ajax

У меня проблема с использованием Ajax.

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

Проблема заключается в том, что прежде чем получить ответ ajax, он вернет cnt. поэтому он всегда возвращает NULL.

Есть ли способ получить правильное значение ответного ответа?

Спасибо вам!

Ответ 1

Поскольку запрос AJAX асинхронен, ваша переменная cnt вернется до того, как запрос вернется и вызывается обработчик успеха.

Я бы предложил рефакторинг кода для этого.

Один из способов сделать это - вызывать любую функцию, которая называется GetGrantAmazonItemCnt(), из обработчика успеха вашего запроса AJAX, таким образом передавая значение туда, куда ему нужно идти:

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