2016-11-21 6 views
-1

У меня есть этот код:Как повторить запрос AJAX в зависимости возврат

.on('finish.countdown', function() { 
        var onEndAuction = function() { 
         $.ajax({ 
          type: "POST", 
          url: "{{path('app_auction_end')}}", 
          data: {auctionId:{{ aReturn.oAuction.getId()}}}, 
          success: function (data) { 
           console.log(data); 
           if (data == 0) { 
            setTimeout(onEndAuction, i_timer); 
           } else { 
            document.location.reload(true); 
           } 
          } 
         }); 
        }; 
       }); 

Я хочу, если данные == 0 нужно сделать еще один звонок на app_auction_end через 10 сек. Не могли бы вы мне помочь ? Thx заранее и простите за мой английский

+0

Ваш почти там, просто вызовитеEndAuction, делая 'varEndAuction =' ничего не делает ... так что в конце после вашей функции do -> '}; onEndAuction(); ' – Keith

+0

@ К сожалению, я не согласен с этой идеей :( –

+0

Хорошо, я сделаю как ответ .. – Keith

ответ

1

Дайте операцию именованный функцию:

var someFunction = function() { 
    $.ajax({ 
     //... 
    }); 
}; 

Какой бы вы затем использовать для .on() вызова:

.on('finish.countdown', someFunction) 

И в success обработчика, установите тайм-аут для этой функции:

if (data == 0) { 
    setTimeout(someFunction, i_timer); 
} 
+0

Я отредактировал вопрос, но не работал –

+0

@HareaCosticla: Поскольку вы определили функцию в сфере действия другой функции, вы не на самом деле * вызываете * функцию в первую очередь. Определите ее в области окна и используйте ее как обратный вызов '.on()', как предложено в этом ответе, или вызовите функцию 'onEndAuction', когда вы определяете (Первое кажется немного легче понять в конечном итоге.) – David

0
.on('finish.countdown', function() { 
    var onEndAuction = function() { 
    $.ajax({ 
     type: "POST", 
     url: "{{path('app_auction_end')}}", 
     data: {auctionId:{{ aReturn.oAuction.getId()}}}, 
     success: function (data) { 
     console.log(data); 
     if (data == 0) { 
      setTimeout(onEndAuction, i_timer); 
     } else { 
      document.location.reload(true); 
     } 
     } 
    }); 
    }; 
    //do our initial call otherwise it will never get called. 
    onEndAuction(); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^