@ricokahler/pool
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

@ricokahler/pool · codecov github status checks bundlephobia semantic-release

Pool is like Promise.all but you can specify how many concurrent tasks you want at once.

Well tested. | Zero dependencies and small size.

npm i @ricokahler/pool
import pool from '@ricokahler/pool';

async function blah() {
  const texts = await pool({
    collection: [1, 2, 3, 4, 5],
    maxConcurrency: 2, // only fetch two pages at a time
    task: async (n) => {
      const response = await fetch(`/go/download/something/${n}`);
      const text = await response.text();
      return text;
    },
  });

  console.log(texts); // an array of the 5 items downloaded
}

maxConcurrency is optional. If omitted it will default to just using Promise.all with no max concurrency.

Package Sidebar

Install

npm i @ricokahler/pool

Weekly Downloads

2,140

Version

1.2.0

License

MIT

Unpacked Size

107 kB

Total Files

13

Last publish

Collaborators

  • ricokahler