setInterval()内部的setTimeout()仅触发一次

时间:2015-03-03 20:36:04

标签: javascript settimeout setinterval

授予以下代码:

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

}

setInterval(updateOdometers(odometers), 2000);

无论出于何种原因,此代码仅更新里程表的值一次,而不是内部延迟每2000ms更新一次。谷歌搜索/ SO-ing并没有给我带来太多结果。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

这一行:

setInterval(updateOdometers(odometers), 2000);

应该是

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

否则,您将调用updateOdometers(odometers)并将结果传递给setInterval