У меня есть функция, которая делает AJAX-вызов на сервер. Код может передавать 2 вида функций успеха и ошибок. Итак, что я хочу сделать, это если второй запрос отправляется без завершения первого, переназначить функции успеха и ошибок без отправки нового запроса и использовать текущий. Я отслеживаю AJAX-звонки в XHR.recordAudio
. Приведенный ниже код не работает, потому что он не переназначает функции успеха / ошибки недавно переданным функциям. Есть идеи?
recordAudio: function( args ){
if( XHR.recordAudio.length > 0 ){
//if the first call is not finished,
//replace the success and error functions
XHR.recordAudio[0].success = function(data){
XHR.recordAudio.pop();
console.log( XHR.recordAudio );
console.log("Success");
args.success(data);
};
XHR.recordAudio[0].error = function(jqXHR){
XHR.recordAudio.pop();
console.log( XHR.recordAudio );
console.log("Error");
args.error(jqXHR);
};
//stop executing this function any further.
return true;
}
var xhr = $.ajax({
url: '/audio/record',
type: 'get',
dataType: 'text',
data: args.data,
success: function(data){
XHR.recordAudio.pop();
console.log( XHR.recordAudio );
args.success(data);
},
error: function(jqXHR){
XHR.recordAudio.pop();
console.log( XHR.recordAudio );
args.error(jqXHR);
}
});
XHR.recordAudio.push(xhr);
}