Buckets:
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| var _once = require('./internal/once.js'); | |
| var _once2 = _interopRequireDefault(_once); | |
| var _wrapAsync = require('./internal/wrapAsync.js'); | |
| var _wrapAsync2 = _interopRequireDefault(_wrapAsync); | |
| var _awaitify = require('./internal/awaitify.js'); | |
| var _awaitify2 = _interopRequireDefault(_awaitify); | |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | |
| /** | |
| * Runs the `tasks` array of functions in parallel, without waiting until the | |
| * previous function has completed. Once any of the `tasks` complete or pass an | |
| * error to its callback, the main `callback` is immediately called. It's | |
| * equivalent to `Promise.race()`. | |
| * | |
| * @name race | |
| * @static | |
| * @memberOf module:ControlFlow | |
| * @method | |
| * @category Control Flow | |
| * @param {Array} tasks - An array containing [async functions]{@link AsyncFunction} | |
| * to run. Each function can complete with an optional `result` value. | |
| * @param {Function} callback - A callback to run once any of the functions have | |
| * completed. This function gets an error or result from the first function that | |
| * completed. Invoked with (err, result). | |
| * @returns {Promise} a promise, if a callback is omitted | |
| * @example | |
| * | |
| * async.race([ | |
| * function(callback) { | |
| * setTimeout(function() { | |
| * callback(null, 'one'); | |
| * }, 200); | |
| * }, | |
| * function(callback) { | |
| * setTimeout(function() { | |
| * callback(null, 'two'); | |
| * }, 100); | |
| * } | |
| * ], | |
| * // main callback | |
| * function(err, result) { | |
| * // the result will be equal to 'two' as it finishes earlier | |
| * }); | |
| */ | |
| function race(tasks, callback) { | |
| callback = (0, _once2.default)(callback); | |
| if (!Array.isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions')); | |
| if (!tasks.length) return callback(); | |
| for (var i = 0, l = tasks.length; i < l; i++) { | |
| (0, _wrapAsync2.default)(tasks[i])(callback); | |
| } | |
| } | |
| exports.default = (0, _awaitify2.default)(race, 2); | |
| module.exports = exports.default; |
Xet Storage Details
- Size:
- 2.13 kB
- Xet hash:
- e4e7b7be80dd42e91289fe14371634877a95d092f7e934c3b156bd09eb3484be
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.