# @colyseus/timer 中文文档

规范地址：https://npmcn.com/package/%40colyseus/timer/

版本：2\.0\.3
npm 元数据更新时间：2026-01-09T17:50:20.412Z
中文译文更新时间：2026-11-10T11:25:40.098Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40colyseus/timer
原文对照：https://npmcn.com/package/%40colyseus/timer/?lang=original
项目主页：https://github.com/colyseus/timer#readme
源码仓库：https://github.com/colyseus/timer

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：42.7 kB，23 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2024-07-18T14:44:56.934Z
- 最新版本发布：2026-01-09T17:50:20.227Z
- 近 30 天下载量：579488（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 4 个）

## 中文简介

时间事件绑定在 @colyseus/ hour

## 安装

```sh
npm install @colyseus/timer
```

也可以使用：`pnpm add @colyseus/timer`、`yarn add @colyseus/timer`、`bun add @colyseus/timer`

## README

# @colyseus/timer (英语)

与时间挂钩的事件 [colyseus/ 小时](https://github.com/colyseus/clock)。 。 。 .

`ClockTimer` 是一个子类 `Clock`,增加了处理超时和 依赖的间隔 `Clock`滴答声.

## 为什么?

一旦内置 `setTimeout` 财务报告和审定财务报表 `setInterval` 依赖CPU负载, 函数可能 延迟一个出乎意料的执行时间 。 绑在钟表上 保证以精确的方式执行.

因此,理想的情况是,所有计时器都有一个CPU时钟,然后按顺序执行.

见引自 [W3C 计时器规格](http://www.w3.org/TR/2011/WD-html5-20110525/timers.html)数字 :

> 这个API并不能保证定时器会如期发射. 延迟 由于CPU负载,其他任务等原因,预计会出现.

然而,它确实保证命令“该计时器是否应根据上次拨打电话以来的已过期时间执行?”.

经典计时器,如果我们有 `setInterval` 联 合 国 `0`ms 它将以调用回调( 如 A LOT) 来填充事件循环计时器队列, 如果我们还有另一个 `1000`ms 间隔将仅在许多 `0`ms 调用被执行 。 事实并非如此 `ClockTimer`,因为它环绕所有计时器 和检查,如果它们应该被执行, 更有可能 `1000`ms 回调会及时执行.

您也可以打电话 `.tick()` 手动检查所有计时器 在一个特定的重要时间.

其他的酷事是,你管理所有的时间器在一个地方,因此你可以立刻清除所有的时间器. 例如,当游戏结束时,您想要清除所有计时器时, 这一点是有用的 。 或当使用这些无关紧要.

## API 密码

```typescript
import { ClockTimer } from "@colyseus/timer";
const timer = new ClockTimer();
```

**时钟**

-   `setInterval(handler, time, ...args)` - > (中文) `Delayed`
-   `setTimeout(handler, time, ...args)` - > (中文) `Delayed`
-   `duration(ms: number)` - > (中文) `Promise<void>` - 在主动功能或承诺中等待一段时间的方便方法。 详见相关联的JSdoc.
-   `clear()` - 清除所有间隔和超时现象,并放弃与下列各方建立的任何承诺: `duration`。 。 。 .

**延迟**

-   `clear()` - > (中文) `void` - 清除超时/中断
-   `reset()` - > (中文) `void` - 重新设定过去的时间
-   `active` - > (中文) `Boolean` - 它还在活动吗?
-   `pause()` - > (中文) `void` - 暂停执行
-   `resume()` - > (中文) `void` - 继续处决
-   `paused` - > (中文) `Boolean` - 暂停了吗?

## 许可证

麻省理工学院

## 常见问题

### @colyseus/timer 是什么？

时间事件绑定在 @colyseus/ hour

### 如何安装 @colyseus/timer？

在项目目录运行 npm install @colyseus/timer，或使用 pnpm add / yarn add / bun add。

### @colyseus/timer 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @colyseus/timer 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @colyseus/timer 可以商用吗？

@colyseus/timer 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @colyseus/timer 的下载量有多少？

根据 npm 官方下载统计，@colyseus/timer 在 2026/10/11 – 2026/11/09 这 30 天内被下载 579,488 次，日均约 19,316 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @colyseus/timer 还在维护吗？

最新版本 2\.0\.3 发布于 2026/01/10（9 个月前）；至今共发布 8 个版本，其中过去 12 个月发布了 4 个；首次发布于 2024/07/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

