setTimeout 连续运行其函数

setTimeout continously running the function its in?

本文关键字:函数 运行 连续 setTimeout      更新时间:2023-09-26

所以我有一个从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"的警报。

有谁明白我在这里做错了什么?

然而,似乎 getAll() 函数也每 5 次执行一次 秒,因为每 5 秒连续出现一次带有"hi"的警报。

如果您不希望每次都提醒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);
}