我目前正在尝试为我控制喷水灭火器的网站制作报警系统。
当前,我使用套接字从客户端获取警报并将其存储在服务器中的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);