maximize-iterator
Version:
Maximize the parallel calls of an iterator supporting asyncIterator interface
27 lines (20 loc) • 1.14 kB
Markdown
Maximize the parallel calls of an iterator supporting asyncIterator interface.
```
const maximize = require('maximize-iterator');
(async ()=> {
// run 1024 in parallel until done - promises
var iterator = // create it somehow with a next method returing {done: value: }
await maximize(iterator, (value) => { /* do something including false stop */ }, { concurrency: 1024, limit: Infinity, error: (err) => { return true; /* filter errors */ } });
})();
// run 1024 in parallel until done - callbacks
var iterator = // create it somehow with a next method returing {done: value: }
maximize(iterator, (value) => { /* do something including false stop */ }, { concurrency: 1024, limit: Infinity, error: (err) => { return true; /* filter errors */ } }, (err) => {
/* done */
});
```
**forEach Options**:
- bool: callbacks - use an each function with a callback `function(entry, callback)` (default: false)
- number: concurrency - parallelism of processing. (default: Infinity)
- number: limit - maximum number to process. (default: Infinity)
- number: batch - per batch count to limit expansion. (default: 10)