我需要在一个时间间隔之间随机运行代码。但是我想知道下一次运行还剩下多少时间。但是间隔越大,误差越大,我也不知道为什么。
我尝试将随机时间四舍五入为1000,以防止在计算时间时失去毫秒数
随机时间生成器(randomTimer()):
this.randomTime = Math.round((Math.floor((Math.random() * this.max) + this.min ) * 60 * 1000)/1000) * 1000
倒数计时(timer()):
let seconds = (this.randomTime - 1000) / 1000;
this.countDown = setInterval
(
() =>
{
this.hour = Math.floor(seconds / (60 * 60))
this.minute = Math.floor((seconds - (this.hour * 60 *60)) / 60);
this.second = (seconds % 60);
seconds--;
},1000
);
主要功能:
clearInterval(this.countDown);
this.randomTimer();
this.timer();
this.searching = setTimeout
(
() =>
{
//the code I need to call. It's call back this function when it's done.
},this.randomTime
)
当倒数计时到0时,它应该运行代码。当倒数计时是一分钟时,它可以完美运行,但是如果是数小时,则代码要比倒数计时到0早几秒钟。