setTimeout不断运行它的函数?

时间:2016-02-26 10:40:04

标签: javascript timer

所以我有一个从onload事件中调用的函数:

var called = 0;

function getAll()
{
   var msg = "hello everyone";
   alert("hi");
   setTimeout(startTimerRepeat, 5000, msg);
}

function startTimerRepeat(content)
{
   document.getElementById('howmanyLbl').innerText = "Called " + called + " times, " + msg;
}

我希望每5秒调用一次startTimerRepeat()函数,确实如此。然而,getAll()函数似乎每5秒执行一次,因为每隔5秒就会出现“hi”警告。

有谁知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

  

然而似乎getAll()函数也每5个执行一次   作为警告的秒数" hi"每5秒钟不断出现。

如果您不希望每次都提醒hi,但仍然每隔5秒更新一次innerText,那么请将您的方法更改为

var called = 0;
function getAll()
{
   var msg = "hello everyone";
   alert("hi");
   setTimeout(function(){
      startTimerRepeat(msg );
   }, 5000, msg);
}

function startTimerRepeat(msg)
{
   document.getElementById('howmanyLbl').innerText = "Called " + (called++) + " times, " + msg;
   setTimeout(function(){
      startTimerRepeat(msg );
   }, 5000, msg);
}