2015-03-03 3 views
-1

Разрешен следующий фрагмент кода:SetTimeout() внутри setInterval() последовательность выстреливает только один раз

function updateOdometers(odometers) { 
    setTimeout(function(){ 
     odometers[1].update(odometers[1].value + 10); 
    }, 500); 

} 

setInterval(updateOdometers(odometers), 2000); 

По какой-то причине этот код обновляет значение одометр только один раз, а не каждые 2000 мс с задержкой внутри. Googling/SO-ing вокруг не принесло мне большого результата. Есть идеи?

+0

Почему вы пытаетесь это сделать? – Bergi

+2

Дубликат http://stackoverflow.com/questions/28837247/javascript-setinterval-only-running-once – Telokis

+0

Бла, не нашел оригинального вопроса, о котором вы говорите. – favoretti

ответ

4

Эта линия:

setInterval(updateOdometers(odometers), 2000); 

должен быть

setInterval(function() {updateOdometers(odometers);}, 2000); 

В противном случае вы будете называть updateOdometers(odometers) и передавая ее результат setInterval.

+1

Doh! Большое спасибо. – favoretti

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