fastq

中文文档
1.20.3发布于 2026/08/29ISCCommonJS构建来源已验证近 30 天下载 5.7亿

快速,在内存工作队列

中文使用文档
文档目录25 节
  1. 安装
  2. 用法( 回调 API)
  3. 用法(保证API)
  4. 设置"这个"
  5. 使用类型脚本( 回调 API)
  6. 使用类型脚本( 保证 API)
  7. API 密码
  8. fastqueue([那],工人,货币)
  9. 队列. push( 任务, 已完成)
  10. 队列. unshort( 任务已完成)
  11. 队列. 暂停 ()
  12. 队列. resume ()
  13. 队列. idle ()
  14. 队列. 长 ()
  15. 队列。 get Quue ()
  16. 队列. kill ()
  17. 队列。 kill AndDrain ()
  18. 队列. error( 处理器)
  19. 队列. 货币
  20. 队列。 已暂停
  21. 队列. drain
  22. 队列。 空
  23. 队列。饱和
  24. fastqueue.promise([那],工人(arg),货币)
  25. 许可证

快递q

ci npm version

快速, 在内存工作队列中 .

基准(100万项任务):

  • 即时设置: 812ms
  • 快克:854ms (中文(简体) )
  • aync.queue: 1298ms (英语)
  • 新Async.queue:1249ms (英语)

在12.16.1节点上通过专用服务器获得.

如果您需要零头系列函数呼叫, 请检查 快速序列。用于零管理平行 函数调用, 检查出 快速平行。 。 。 .

安装

npm i fastq --save

用法( 回调 API)

'use strict'

const queue = require('fastq')(worker, 1)

queue.push(42, function (err, result) {
  if (err) { throw err }
  console.log('the result is', result)
})

function worker (arg, cb) {
  cb(null, arg * 2)
}

用法(保证API)

const queue = require('fastq').promise(worker, 1)

async function worker (arg) {
  return arg * 2
}

async function run () {
  const result = await queue.push(42)
  console.log('the result is', result)
}

run()

设置"这个"

'use strict'

const that = { hello: 'world' }
const queue = require('fastq')(that, worker, 1)

queue.push(42, function (err, result) {
  if (err) { throw err }
  console.log(this)
  console.log('the result is', result)
})

function worker (arg, cb) {
  console.log(this)
  cb(null, arg * 2)
}

使用类型脚本( 回调 API)

'use strict'

import * as fastq from "fastq";
import type { queue, done } from "fastq";

type Task = {
  id: number
}

const q: queue<Task> = fastq(worker, 1)

q.push({ id: 42})

function worker (arg: Task, cb: done) {
  console.log(arg.id)
  cb(null)
}

使用类型脚本( 保证 API)

'use strict'

import * as fastq from "fastq";
import type { queueAsPromised } from "fastq";

type Task = {
  id: number
}

const q: queueAsPromised<Task> = fastq.promise(asyncWorker, 1)

q.push({ id: 42}).catch((err) => console.error(err))

async function asyncWorker (arg: Task): Promise<void> {
  // No need for a try-catch block, fastq handles errors automatically
  console.log(arg.id)
}

API 密码


fastqueue([那],工人,货币)

创建新队列.

参数 :

  • that,可选上下文 worker 函数.
  • worker,工人的功能, 它被称为与 that 作为 this, (中文(简体) ), 如果有的话.
  • concurrency, 可在 平行.

队列. push( 任务, 已完成)

在队列末尾添加任务 . done(err, result) 将被调用 当任务被处理时.


队列. unshort( 任务已完成)

在队列开头添加任务 . done(err, result) 将被调用 当任务被处理时.


队列. 暂停 ()

暂停任务处理 。 目前的工作任务不是 停下来.


队列. resume ()

恢复任务处理.


队列. idle ()

回返 false 如果有任务正在处理或等待处理. true 否则.


队列. 长 ()

返回等待处理的任务数量(在队列中).


队列。 get Quue ()

返回所有要处理的任务( 在队列中) 。 在没有任务时返回空数组


队列. kill ()

删除待处理的所有任务,并重设 drain 改为空 函数.


队列。 kill AndDrain ()

与 kill 不过 drain 函数在重置为空之前将被调用.


队列. error( 处理器)

设置全局错误处理器 . handler(err, task) 将被调用 每次任务完成后, err 如果任务出错, 将不会无效 .


队列. 货币

返回可执行的并行任务数量的财产 平行。 运行时可以改变.


队列。 已暂停

返回的属性( 只读) true 当队列处于停顿状态时.


队列. drain

上次调用时的函数 来自队列的项目已经由工人处理. 运行时可以改变.


队列。 空

上次调用时的函数 从队列中列出的项目已分配给工人. 运行时可以改变.


队列。饱和

当队列击中货币时调用的函数 限制. 运行时可以改变.


fastqueue.promise([那],工人(arg),货币)

创建一个新队列 Promise pi. 它也提供了所有的方法 和返回对象的属性 fastqueue 修改后 push 财务报告和审定财务报表 unshift 方法。 。 .

节点v10+需要使用被打通的版本.

参数 :

  • that,可选上下文 worker 函数.
  • worker,工人的功能, 它被称为与 that 作为 this, (中文(简体) ), 如果有的话。 它必须返回a Promise。 。 。 .
  • concurrency, 可在 平行.

队列. push( 任务) QQ 答应

在队列末尾添加任务 。 回来的 Promise 将实现( 已拒绝) 当任务成功完成时( 未成功) .

这一承诺可能会被忽略,因为它不会导致 'unhandledRejection'。 。 。 .

队列. unshort(任务) QQ 答应

在队列开头添加任务 。 回来的 Promise 将实现( 已拒绝) 当任务成功完成时( 未成功) .

这一承诺可能会被忽略,因为它不会导致 'unhandledRejection'。 。 。 .

队列. drained () QQ 答应

等待排队排出. 回来的 Promise 将在队列中的所有任务由工人处理后解决.

这一承诺可能会被忽略,因为它不会导致 'unhandledRejection'。 。 。 .

许可证

公务员制度委员会

版本与发布记录

fastq 共发布 32 个版本,首次发布于 2015/06/15;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.20.3latest2026/08/292 个月前
1.20.22026/08/282 个月前
1.20.12025/12/2310 个月前
1.20.02025/12/2310 个月前
1.19.12025/02/261.7 年前
1.19.02025/01/311.8 年前

关于 fastq 的常见问题

fastq 是什么?

快速,在内存工作队列

如何安装 fastq?

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

fastq 支持 TypeScript 吗?

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

fastq 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

fastq 可以商用吗?

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

fastq 的下载量有多少?

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

fastq 还在维护吗?

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