p-queue

Frameworks & Libraries

Promise queue with concurrency control.

Latest v9.3.3 · by Sindre SorhusWebsitesindresorhus/p-queue

Release activity

Release activity — 10 releases across 10 days since Oct 1, 2025. Each cell is one day; darker means more releases that day. Nothing is recorded before Oct 1, 2025. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026
MondayNo releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 20261 release on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026
TuesdayNo releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026
WednesdayNo releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 20261 release on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026
ThursdayNo releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026
FridayNo releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 20261 release on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026
SaturdayNo releases on May 9, 20261 release on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026

10 releases since Oct 1, 2025

Changelog

v9.0.0

Added 10
  • Add .onError() method
  • Add .onPendingZero() method
  • Add pendingZero event
  • Add .runningTasks property
  • Add .isSaturated property
  • Add .onRateLimit() method
Changed 1
  • Rename carryoverConcurrencyCount option to carryoverIntervalCount
Fixed 4
  • Fix stack overflow with many aborted tasks
  • Fix interval cap race condition with high concurrency
  • Fix interval timing when queue becomes empty between task additions
  • Fix priority default handling for undefined values
Removed 2
  • Require Node.js 20
  • Remove throwOnTimeout option, timeouts now always throw

From p-queue

Breaking
  • Require Node.js 20 b2600d5
  • Remove throwOnTimeout option - timeouts now always throw e48716f
    • It was a mistake to not throw on timeouts and the option made it complicated to handle types.
    • If you really need the old behavior back:
      const result = await queue.add(fn).catch(error => {
        if (error instanceof TimeoutError) {
        	return undefined;
        }
      
        throw error;
      });
      
Improvements
Fixes
  • Fix stack overflow with many aborted tasks 81cbae2
  • Fix interval cap race condition with high concurrency 7fea658
  • Fix interval timing when queue becomes empty between task additions 7b3f53e
  • Fix priority default handling for undefined values 439d512

https://github.com/sindresorhus/p-queue/compare/v8.1.1...v9.0.0

View originalPermalink
How v9.0.0 went
View all

Discussion

If you publish p-queue, you can claim this product by proving you administer its repository.