Заменить при успешном выполнении функции во время загрузки ajax - jQuery - PullRequest
1 голос
/ 09 февраля 2012

У меня есть функция, которая делает 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);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...