# @bearly/pacing 中文文档

规范地址：https://npmcn.com/package/%40bearly/pacing/

版本：0\.2\.0
npm 元数据更新时间：2026-09-27T14:26:26.644Z
中文译文更新时间：2026-11-07T19:54:05.041Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40bearly/pacing
原文对照：https://npmcn.com/package/%40bearly/pacing/?lang=original
项目主页：https://github.com/beorn/bearly/tree/main/packages/pacing
源码仓库：https://github.com/beorn/bearly

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

- 包体积（解压后）：13.3 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-09-25T01:29:39.265Z
- 最新版本发布：2026-09-27T14:26:26.462Z
- 近 30 天下载量：6526（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

纯节奏政策:全方位、添加剂和与装饰有关的紧张状态,以及准备就绪的大门

## 安装

```sh
npm install @bearly/pacing
```

也可以使用：`pnpm add @bearly/pacing`、`yarn add @bearly/pacing`、`bun add @bearly/pacing`

## README

# @ bearly/ 间隔

重新连接和重启循环的纯正间隔政策:何时再次尝试,何时一个依赖已经准备好.

这里没有任何东西拥有一个时钟,一个计时器,一个套接字或者一个过程. 你通过 `now`, (中文(简体) ), `sleep`你的探测器,在测试中,一个种子 随机源. 模块将常见的焦躁图案和一个备战门放在一个位置,所以每个回路都可以使用 同一个代码.

## 安装

> 从 npm 安装; git 安装可解析 TypeScript 源并只在 Bun 下运行 .

```bash
bun add @bearly/pacing
```

## 使用

```ts
import { additiveJitter, awaitReady, decorrelatedJitter, fullJitter } from "@bearly/pacing"

// Full jitter: uniform in [0, min(cap, base * 2 ** attempt)]. A plain spread over a window is base = cap = window.
const delay = fullJitter(250, 30_000, attempt)

// Additive jitter: keep the exponential delay as a floor and spread up to 25% above it, clipped to cap.
const quotaDelay = additiveJitter(60_000, 3_600_000, attempt, 0.25)

// Decorrelated jitter: uniform in [base, min(cap, previous * 3)]; feed back the last delay (base on the first call).
let wait = 500
wait = decorrelatedJitter(500, 30_000, wait)

// Readiness gate: probe until it answers true or the timeout (a duration) passes.
const outcome = await awaitReady(() => daemon.ping(), {
  timeoutMs: 30_000,
  retryMs: 250,
  now: () => Date.now(),
  sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
})
if (!outcome.ready) console.warn(`daemon not ready after ${outcome.waitedMs} ms`, outcome.lastError)
```

`awaitReady` 探测器一次,没有睡眠。 然后用装饰相伴而眠 `retryMs` 财务报告和审定财务报表 `maxRetryMs` (默认) `retryMs * 8`),被剪断了,所以它从来没有睡过超时. 最后一个探测器运行在 暂停,以及 `ready: false` 之后才回来 抛出数为未准备好的探测器,其最后一个错误是 已经返回.

当重试必须至少等待其指数基数时选择添加态焦点, 当整个延迟可以时选择全态焦点 由 0 展开, 当对等方在争论中从先前的延迟中节奏时, 解开相关的焦急 .

**探测器必须绑住自己.** 门只检查探测器之间的超时,所以一个永远无法解决的探测器 门将永远通过它的时间。 给每个探测器自己的超时 短于 `timeoutMs`: 呼叫超时 套接字,或一个 `AbortSignal.timeout` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}在取货时 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}我...

每个函数投出 `RangeError` 当它的边框名称不延时(负基、基底下方的上限、分数) 尝试,在 \[0, 1\] 外的添加剂比,或不是有限数量的约束.

## 保证

-   延迟不会超过上限; 添加剂活泼不会降到指数地板下, 装饰活泼永远不会 坠入它的底部.
-   备战的大门从不睡觉过夜 每个探测器落地时 它都会在超时返回.
-   没有I/O,计时器或全球. `Math.random` 是默认的随机源,每个函数都需要替换.

## 常见问题

### @bearly/pacing 是什么？

纯节奏政策:全方位、添加剂和与装饰有关的紧张状态,以及准备就绪的大门

### 如何安装 @bearly/pacing？

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

### @bearly/pacing 支持 TypeScript 吗？

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

### @bearly/pacing 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @bearly/pacing 可以商用吗？

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

### @bearly/pacing 的下载量有多少？

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

### @bearly/pacing 还在维护吗？

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

