重复之前在 setInterval 内运行一次函数

Nas*_*ail 0 javascript

我有一个函数,可以使用 setInterval 在页面加载时每 5 分钟检查一次自上次访问以来的日期变化。此外,还有与每天相关的数据将存储在本地存储中。

setInterval(function(){
  if(newDay()) {
     today = getTodaysDay();
     // store required data in the database
  }
}, 30000);
Run Code Online (Sandbox Code Playgroud)

问题是,当日期发生变化并且我从数据库记录当天的数据时,我会看到“未定义”5 分钟,直到 setInterval 内的函数运行为止。有没有办法来解决这个问题?我尝试复制 setInterval 中的所有内容并将其放置在上面setInterval(function()...,但这似乎不起作用。

Hau*_*Haf 6

有点不清楚你要求什么,但这应该可以满足你的要求:

// Declare the function first:
function dostuff() {
  if(newDay()) {
     today = getTodaysDay();
     // store required data in the database
  }
}

// Call it once to begin with
dostuff();
// Then create an interval to run the function every 30 seconds:
setInterval(dostuff, 30000);
Run Code Online (Sandbox Code Playgroud)