@chalker/queue

中文文档
1.0.1发布于 2025/05/11MITES Module零依赖近 30 天下载 2.3万

A trivial queue / mutex lock implementation

原始使用文档
文档目录4 节
  1. Queue
  2. Lock
  3. Full example
  4. License

@chalker/queue

A trivial Queue / Lock implementation that I used in my personal projects.

Example: https://github.com/nodejs/Gzemnid/blob/main/src/queue.js

Queue

Usage:

import { Queue } from '@chalker/queue'

const queue = new Queue(10) // concurrency

async function run() {
  await queue.claim()
  // do async stuff with controlled maximum concurrency
  queue.release()
}

Lock

new Lock() is just an alias to new Queue(1), which can be used

import { Queue } from '@chalker/queue'

const lock = new Lock()

async function run() {
  await lock.claim()
  // do async stuff with maximum concurrency = 1
  lock.release()
}

Full example

import { Queue } from '@chalker/queue'

const queue = new Queue(3)

let concurrency = 0 // Just for testing purposes
async function run(x) {
  await queue.claim()
  console.log(`Start #${x}, concurrency: ${++concurrency}`)
  await new Promise(resolve => setTimeout(resolve, 1))
  console.log(`End #${x}, concurrency: ${concurrency--}`)
  queue.release()
}

const args = new Array(6).fill(0).map((_, i) => i + 1)
await Promise.all(args.map(run))

Output:

Start #1, concurrency: 1
Start #2, concurrency: 2
Start #3, concurrency: 3
End #1, concurrency: 3
Start #4, concurrency: 3
End #2, concurrency: 3
Start #5, concurrency: 3
End #3, concurrency: 3
Start #6, concurrency: 3
End #4, concurrency: 3
End #5, concurrency: 2
End #6, concurrency: 1

License

MIT

版本与发布记录

@chalker/queue 共发布 2 个版本,首次发布于 2024/06/15;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.1latest2025/05/111.5 年前
1.0.02024/06/152 年前

关于 @chalker/queue 的常见问题

@chalker/queue 是什么?

A trivial queue / mutex lock implementation

如何安装 @chalker/queue?

在项目目录运行 npm install @chalker/queue,或使用 pnpm add / yarn add / bun add。

@chalker/queue 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/chalker__queue 是否存在。

@chalker/queue 支持 ESM 还是 CommonJS?

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

@chalker/queue 可以商用吗?

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

@chalker/queue 的下载量有多少?

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

@chalker/queue 还在维护吗?

最新版本 1.0.1 发布于 2025/05/11(1.5 年前);至今共发布 2 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/06/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。