p-times
Version:
Run promise-returning & async functions a specific number of times concurrently
65 lines (38 loc) β’ 1.63 kB
Markdown
# p-times
> Run promise-returning & async functions a specific number of times concurrently
## Install
```
$ npm install p-times
```
## Usage
```js
import pTimes from 'p-times';
const result = await pTimes(5, index => createFixture(`π¦-${index + 1}`));
console.log(`Created fixtures: ${result.join(' ')}`);
//=> 'Created fixtures: π¦-1 π¦-2 π¦-3 π¦-4 π¦-5'
```
## API
### pTimes(count, mapper, options?)
Returns a `Promise` that is fulfilled when all promises returned from `mapper` are fulfilled, or rejects if any of the promises reject. The fulfilled value is an `Array` of the fulfilled values returned from `mapper` in order.
#### count
Type: `number`
Number of times to call `mapper`.
#### mapper(index)
Type: `Function`
Expected to return a `Promise` or value.
#### options
Type: `object`
##### concurrency
Type: `number`\
Default: `Infinity`\
Minimum: `1`
Number of concurrently pending promises returned by `mapper`.
##### stopOnError
Type: `boolean`\
Default: `true`
When set to `false`, instead of stopping when a promise rejects, it will wait for all the promises to settle and then reject with an [aggregated error](https://github.com/sindresorhus/aggregate-error) containing all the errors from the rejected promises.
## Related
- [p-forever](https://github.com/sindresorhus/p-forever) - Run promise-returning & async functions repeatedly until you end it
- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently
- [p-filter](https://github.com/sindresorhus/p-filter) - Filter promises concurrently
- [Moreβ¦](https://github.com/sindresorhus/promise-fun)