получить ответ на jjery ajax-вызов в качестве входного параметра другой функции: - PullRequest
0 голосов
/ 04 февраля 2011

Можно ли сделать jQuery-вызов ajax и получить ответ в качестве входного параметра другой функции?

Вот пример, у меня есть следующий вызов функции в местоположении:

updateTips(validationTextObject,objUsers.fetchAvailable());

функция objUsers.fetchAvailable () выполняет ajax-вызов сервера.Функция обратного вызова при успешном вызове будет выглядеть примерно так.Он используется для обработки результата

BHUsers.prototype.recvAvailable= function(response){
    // some kind of processing over here
    return (response["status"] == "OK")? "Available" : "Not Available";
}

Я хочу, чтобы эта функция возвращала обработанный результат, который можно использовать в качестве параметра функции updateTips

Основная цель этого состоит в том, чтобыбыть в состоянии сделать все это для нескольких сценариев, вместо того, чтобы писать несколько функций для одного и того же вызова.Также я хочу, чтобы функции вызова и обработки ответов просто делали то, что они делают.Я не хочу добавлять html-объекты в него.

Любые подсказки?

1 Ответ

1 голос
/ 04 февраля 2011

при условии, что прототип objUsers.fetchAvailable отправляет ajax-запрос, используя jquery.

Вы бы установили функцию успеха следующим образом:

BHUsers.prototype.fetchAvailable = function(){
    $.ajax({
        url:'', 
        success: this.recvAvailable // bind success to `recvAvailable`
    })
}

Но поскольку обратный вызов ajax имеет параметры data, textStatus, XHR, вы можете обернуть его анонимной функцией.

BHUsers.prototype.fetchAvailable = function(){
    var self = this;
    $.ajax({
        url:'', 
        success: function(data, textStatus, XHR){
            self.recvAvailable(XHR); // bind success to `recvAvailable`
        }
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...