A promise utility for batching.
const batchRunner = require('batch-runner');
const requests = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
const toPromise = (req, index) => Promise.resolve(req.toLowerCase());
batchRunner.run(requests, toPromise, {
interval: 10,
concurrency: 3,
maxRetries: 2,
retryInterval: 100,
shouldRetry: err => true
}).then(results => {
console.log(results);
}).catch(e => {
console.log('Error:', e.message);
console.log('Results:', e.results());
console.log('Errors:', e.errors());
console.log('Unprocessed:', e.unprocessedRequests());
});