2013-08-01 5 views
1

У меня есть следующий метод успеха. До того, как я использовал setTime, он работал без проблем, но он отправил много запросов AJAX. Чтобы попытаться замедлить работу, я использовал setTimeout. Так как я ввел это, я получаю кучу этих ошибок: «Uncaught SyntaxError: Unexpected identifier».ошибка с использованием setTimeout с запросом AJAX

success: function (data) { 
    if (data === '') { 
     setTimeout($.ajax(this) ,3000); 
     console.log("AJAX resent"); 

    } 
    else { 
     //console.log("|", data, "|"); 
     test.html(''); 
     test.append(data); 
    } 
}, 

ответ

2

Функция должна быть ссылка, не вычисляется, так что если вам нужно передать параметры, вы должны обернуть его в анонимную функцию:

var that = this; 
setTimeout(function() { 
    $.ajax(that); 
} ,3000); 
+0

Просто положить, что внутри функции успеха? –

+1

Да, просто замените текущий таймаут на этот, и помните, что новая функция создает новую область, поэтому вам понадобится ссылка на 'this'. – adeneo

+0

Woops, просто видел это, удаляя, удаляя и удаляя. – tymeJV