@Partizanin
Java Developer

Как вернуть json ответ в другую функцию из функции с ajax запросом?

Есть функция с ajax запросом которая возвращает Json, но вернуть его не не могу, могу только работать в поле success: !
Как мне вернуть ответ от сервера чтобы я мог работать с ним в нескольких функциях ?

function callServeToChangeExchange(exchange, operation) {

    var myData = {"operationCall": operation, "exchange": exchange};

    loader("show");

    $.ajax({
        type: "GET",
        url: "/ConventerServlet",
        data: {jsonData: JSON.stringify(myData)},
        dataType: "json",

        //if received a response from the server
        success: function (data) {
            document.getElementById("exchange1").value = data.exchange1;
            document.getElementById("exchange2").value = data.exchange2;
            document.getElementById("exchange3").value = data.exchange3;
            document.getElementById("exchange4").value = data.exchange4;
            count($("#inputValue").val());
            /*loader("hide")*/
        },

        error: function(jqXHR, textStatus, errorThrown) {
            console.log(textStatus, errorThrown);
        },

        complete: function () {
            loader("hide")
        }

    });

}
  • Вопрос задан
  • 1143 просмотра
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Если я верно понял, вам требуется объект promise, который в jQuery реализуется как объект Deferred.

function callServeToChangeExchange (exchange, operation) {
	var defer = $.Deferred();
...
	$.ajax({
...
	}).done(function (data) {
		// Вот так теперь рекомендуют вместо success
		defer.resolve(data);
	});
	return defer.promise();
}

callServeToChangeExchange().then(function (data) {
	// А вот и данные запроса
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы