parallelLimit.js
1 'use strict'; 2 3 Object.defineProperty(exports, "__esModule", { 4 value: true 5 }); 6 exports.default = parallelLimit; 7 8 var _eachOfLimit = require('./internal/eachOfLimit'); 9 10 var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); 11 12 var _parallel = require('./internal/parallel'); 13 14 var _parallel2 = _interopRequireDefault(_parallel); 15 16 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 17 18 /** 19 * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a 20 * time. 21 * 22 * @name parallelLimit 23 * @static 24 * @memberOf module:ControlFlow 25 * @method 26 * @see [async.parallel]{@link module:ControlFlow.parallel} 27 * @category Control Flow 28 * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection of 29 * [async functions]{@link AsyncFunction} to run. 30 * Each async function can complete with any number of optional `result` values. 31 * @param {number} limit - The maximum number of async operations at a time. 32 * @param {Function} [callback] - An optional callback to run once all the 33 * functions have completed successfully. This function gets a results array 34 * (or object) containing all the result arguments passed to the task callbacks. 35 * Invoked with (err, results). 36 * @returns {Promise} a promise, if a callback is not passed 37 */ 38 function parallelLimit(tasks, limit, callback) { 39 return (0, _parallel2.default)((0, _eachOfLimit2.default)(limit), tasks, callback); 40 } 41 module.exports = exports['default'];