我目前正在尝试为我控制喷水灭火器的网站制作报警系统。
当前,我使用套接字从客户端获取警报并将其存储在服务器中的JSON文件中。

为了“激活”警报,我认为有一个setInterval函数可以检查数组中是否包含当前时间(使用.includes())。
我现在很烦,因为setInterval函数每次运行都会延迟65毫秒
在继续之前,它是否等待内部代码完成?如果是这样,我怎么做却不这样做

这是我的代码:

我认为this可能是相关的,如果我能理解的话(我是新来的)

console.log("Waiting for time to get in to sync...")
while (sync > 0 || sync == undefined) {
  let date = new Date()
  sync = date.getSeconds()
}
setInterval(()=>{
check(new Date()) //run the check code elsewhere
}, 60000); // one minute delay```

最佳答案

如果希望函数在指定时间后立即运行,请递归使用setTimeout而不是setInterval

setTimeout(function check(date) {
  //check method logic
  setTimeout(check(new Date()), 2000);
}, 2000);

07-24 09:44
查看更多