Promise 并发控制库对比与共性特性总表

共性特性


主流及常见库对比总表

名称 启动方式/易用性 完整程度/主要功能 推荐程度 优点 缺点 链接
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