@colyseus/timer (英语)
与时间挂钩的事件 colyseus/ 小时。 。 。 .
ClockTimer 是一个子类 Clock,增加了处理超时和
依赖的间隔 Clock滴答声.
为什么?
一旦内置 setTimeout 财务报告和审定财务报表 setInterval 依赖CPU负载, 函数可能
延迟一个出乎意料的执行时间 。 绑在钟表上
保证以精确的方式执行.
因此,理想的情况是,所有计时器都有一个CPU时钟,然后按顺序执行.
见引自 W3C 计时器规格数字 :
这个API并不能保证定时器会如期发射. 延迟 由于CPU负载,其他任务等原因,预计会出现.
然而,它确实保证命令“该计时器是否应根据上次拨打电话以来的已过期时间执行?”.
经典计时器,如果我们有 setInterval 联 合 国 0ms 它将以调用回调( 如 A LOT) 来填充事件循环计时器队列, 如果我们还有另一个 1000ms 间隔将仅在许多 0ms 调用被执行 。 事实并非如此 ClockTimer,因为它环绕所有计时器 和检查,如果它们应该被执行, 更有可能 1000ms 回调会及时执行.
您也可以打电话 .tick() 手动检查所有计时器 在一个特定的重要时间.
其他的酷事是,你管理所有的时间器在一个地方,因此你可以立刻清除所有的时间器. 例如,当游戏结束时,您想要清除所有计时器时, 这一点是有用的 。 或当使用这些无关紧要.
API 密码
import { ClockTimer } from "@colyseus/timer";
const timer = new ClockTimer();
时钟
setInterval(handler, time, ...args)- > (中文)DelayedsetTimeout(handler, time, ...args)- > (中文)Delayedduration(ms: number)- > (中文)Promise<void>- 在主动功能或承诺中等待一段时间的方便方法。 详见相关联的JSdoc.clear()- 清除所有间隔和超时现象,并放弃与下列各方建立的任何承诺:duration。 。 。 .
延迟
clear()- > (中文)void- 清除超时/中断reset()- > (中文)void- 重新设定过去的时间active- > (中文)Boolean- 它还在活动吗?pause()- > (中文)void- 暂停执行resume()- > (中文)void- 继续处决paused- > (中文)Boolean- 暂停了吗?
许可证
麻省理工学院