Skip to content

A minimal library for managing multiple promise instances (promise pool)

License

Notifications You must be signed in to change notification settings

WillBooster/minimal-promise-pool

Repository files navigation

minimal-promise-pool

Test semantic-release

A minimal library for managing the maximum number of promise instances. For example, new PromisePool(2) limits the maximum number of concurrent executions to two.

How to Use

The following example code runs only two promises at a maximum.

import { PromisePool, sleep } from 'minimal-promise-pool';

(async () => {
  const promisePool = new PromisePool(2);
  await promisePool.run(async () => {
    console.log('First task started');
    await sleep(10 * 1000);
    console.log('First task finished');
  });
  await promisePool.run(async () => {
    console.log('Second task started');
    await sleep(10 * 1000);
    console.log('Second task finished');
  });
  await promisePool.run(async () => {
    console.log('Third task started');
    await sleep(10 * 1000);
    console.log('Third task finished');
  });
})();

The result is as follows:

First task started
Second task started
# Wait for about 10 seconds
First task finished
Third task started
Second task finished
# Wait for about 10 seconds
Third task finished