UNPKG

fast-async-pool

Version:

Run multiple promise-returning & async functions with limited concurrency with low overhead

51 lines (33 loc) 1.14 kB
# fast-async-pool similar to [p-map](https://www.npmjs.com/package/p-map) or [tiny-async-pool](https://www.npmjs.com/package/tiny-async-pool), fast-async-pool run async/promise returning functions with limited concurrency and low overhead. ## Install ``` $ npm install fast-async-pool ``` ## Usage ```js import asyncPool from 'fast-async-pool'; import fetch from 'cross-fetch'; const sites = [ 'https://jestjs.io', 'https://github.com', 'https://www.npmjs.com', 'https://www.solidjs.com' ]; const pages = await asyncPool(2, sites, async site => { const response = await fetch(site); return response.text(); }); console.log(pages); ``` ## API ### asyncPool(limit, array, fn) Returns a `Promise` that is fulfilled when all promises generated by mapping `array` to `fn` are fulfilled, or rejects if any of the promises reject. The fulfilled value is an `Array` of the fulfilled values returned from `fn` in `array` order. #### limit concurrency limit Type: `number` >= 1 #### array Type: `Array<Promise<unknown> | unknown>` #### fn(element, index, array) Type: `Function` Expected to return a `Promise` or value.