用schedule每秒执行一次,执行240次,结束时应该是过了240秒,但实际会晚个2秒左右。
执行次数越多,误差越大。
也就是说每次执行 schedule,都会有一点点误差,可能是几毫秒,但是时间久了,误差累积起来,也是很可观的。
目前我的做法是:每次执行,自己获取当前时间自己算。
用schedule每秒执行一次,执行240次,结束时应该是过了240秒,但实际会晚个2秒左右。
执行次数越多,误差越大。
也就是说每次执行 schedule,都会有一点点误差,可能是几毫秒,但是时间久了,误差累积起来,也是很可观的。
目前我的做法是:每次执行,自己获取当前时间自己算。
跟渲染帧数有关系吧可能,每帧做的事情多了帧时间拉长了,定时器就会间隔得更久
感觉像是每次执行一次之后,就重新开始计时,但是每次都不是严丝合缝到毫秒的,而是多少有几毫秒的延迟
你说对了,就是每次触发了,重置了计时器。
callbackTimer 每次触发 都重置 this._elapsed = 0; 应该改成 this._elapsed -= this._interval;