// 定时器不标准问题
// (10s 就执行 10个任务 哪怕阻塞也执行10个)
// 任务次数
let count = 0
// 程序开始时间
let startTime = new Date().getTime()
const work = () => {
count++ // 当前任务index
const now = new Date().getTime()
const timeFlies = now - startTime
// 理论上是 count * 1s 才对
const delay = timeFlies - count * 1000
const nextTime = 1000 - delay > 0 /* 相当于把下一秒的任务用了一点时间 那么应该还回来 小于0的话已经超了 应该立即0秒延迟执行直到还完延迟的时间 */?
1000 - delay
:
0
console.log(count)
setTimeout(() => {
if (count < 10) work()
}, nextTime)
}
setTimeout(() => {
work()
}, 1000)