maximize-iterator
Version:
Maximize the parallel calls of an iterator supporting asyncIterator interface
12 lines (11 loc) • 554 B
JavaScript
import worker from './worker.js';
export default function maximizeIterator(iterator, each, options, callback) {
if (typeof each !== 'function') throw new Error('Missing each function');
callback = typeof options === 'function' ? options : callback;
options = typeof options === 'function' ? {} : options || {};
if (typeof callback === 'function') {
worker(iterator, each, options, callback);
return;
}
return new Promise((resolve, reject)=>worker(iterator, each, options, (err)=>err ? reject(err) : resolve()));
}