Я хотел бы сохранить результат ответа на вызов ajax. Это связано с тем, что ajax - это основной вызов API, используемый несколькими функциями для извлечения информации из API.
Я вызываю функцию callAPI более 8 раз в моем приложении.
Конечно, я могу дублировать функцию callAPI 8 раз, чтобы правильно получить информацию, но это не крутой способ кодирования.
var result = callAPI("GET",url,'');
$('#status').val(result.success);
$('#output').val(result);
function callAPI(method_input, url_input, body_input){
var urli = url_input;
var datai = body_input;
var method = method_input;
$.ajax({
url: urli,
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("some header","some value");
},
type: method,
data: datai,
})
.done(function(data,status) {
console.log("success");
console.log(data);
return JSON.stringify(data);
})
.fail(function(data,status) {
console.log("error");
console.log(data);
return JSON.stringify(data);
});
}
Я пытался сохранить возвращаемое значение, используя
var result = ajax (значение);
но результат пуст
есть ли способ сохранить возвращаемое значение функции в переменной?
EDIT
Я решил эту проблему с помощью функции обратного вызова, как показано ниже
function callbackResult(result){
$('#status').val(result.success);
$('#output').val(result);
}
function callAPI(method_input, url_input, body_input, callback){
var urli = url_input;
var datai = body_input;
var method = method_input;
$.ajax({
url: urli,
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("some header","some value");
},
type: method,
data: datai,
})
.done(function(data,status) {
console.log("success");
console.log(data);
return JSON.stringify(data);
callback(data);
})
.fail(function(data,status) {
console.log("error");
console.log(data);
return JSON.stringify(data);
callback(data);
});
}
Это была моя первая функция, которая использовала функцию обратного вызова, и теперь я знаю, что такое функция обратного вызова.
Спасибо вам всем.