| p-map |
像 map 一样使用,传数组+函数 |
支持并发数设置,仅做 map |
⭐⭐⭐⭐⭐ (5/5) |
API 简单,支持并发,async/sync 皆可 |
仅适用于集合 map 场景,功能单一 |
p-map |
| p-limit |
先创建 limiter 包裹异步任务 |
只做并发限制,极简 |
⭐⭐⭐⭐½ (4.5/5) |
灵活,适合自定义调度,体积小 |
需用户管理任务和 Promise.all,无队列/暂停功能 |
p-limit |
| p-queue |
实例化队列,add() 投递任务 |
功能丰富:并发/队列/优先级/暂停等 |
⭐⭐⭐⭐⭐ (5/5) |
支持优先级、暂停、恢复、队列长度,适合复杂调度 |
API 更复杂,体积稍大 |
p-queue |
| async |
多种模式,函数式风格 |
支持 waterfall、queue、mapLimit 等 |
⭐⭐⭐⭐ (4/5) |
生态大,功能丰富,支持多种流程控制 |
语法偏老,非原生 Promise 风格 |
async |
| promise-pool |
实例化池,add() 推任务 |
支持暂停/恢复,灵感自 PHP Pool |
⭐⭐⭐⭐ (4/5) |
API 简洁,易用,支持复杂并发场景 |
生态较小,部分特性与主流库重叠 |
promise-pool |
| es6-promise-pool |
实例化池,传任务生成器 |
轻量并发池,仅 1 个类 |
⭐⭐⭐½ (3.5/5) |
体积小,API 极简 |
功能有限,生态较小 |
es6-promise-pool |
| tiny-async-pool |
作为 async 迭代器使用 |
极小体积,API 类似 p-map,支持 async/await |
⭐⭐⭐⭐ (4/5) |
极致精简,写法现代,适合批量异步 |
功能极简,适用面有限 |
tiny-async-pool |
| bluebird |
Promise 扩展方法调用 |
Promise.map、mapSeries 等流程控制 |
⭐⭐⭐⭐ (4/5) |
高性能 Promise,功能强大,历史悠久 |
体积大,非现代原生 Promise 优先 |
bluebird |