minimal-promise-pool
Version:
A minimal library for managing multiple promise instances (promise pool).
48 lines (39 loc) • 1.42 kB
Markdown
[](https://github.com/WillBooster/minimal-promise-pool/actions/workflows/test.yml)
[](https://github.com/semantic-release/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.
The following example code runs only two promises at a maximum.
```ts
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
First task finished
Third task started
Second task finished
Third task finished
```