在加载ajax时替换on-success函数 - jQuery

时间:2012-02-08 21:33:22

标签: javascript jquery ajax javascript-events

我有一个函数可以对服务器进行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);
   }

0 个答案:

没有答案