我有一个函数可以对服务器进行ajax调用。代码可以传递2种成功和错误函数。所以,我想要做的是如果第二个请求在没有第一个完成的情况下发送,重新分配成功和错误函数而不发送新请求并使用当前请求。我正在跟踪XHR.recordAudio
中的ajax调用。下面的代码不起作用,因为它不会将成功/错误函数重新分配给新传递的函数。有什么想法吗?
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);
}