1234567891011121314151617181920212223242526 |
- var noop = require('./noop');
- var each = require('./each');
- var nextTick = require('./nextTick');
- exports = function(tasks, cb) {
- cb = cb || noop;
- var results = [];
- var pending = tasks.length;
- if (!pending) return done(null);
- each(tasks, function(task, i) {
- task(function(err, result) {
- taskCb(i, err, result);
- });
- });
- function taskCb(i, err, result) {
- results[i] = result;
- if (--pending === 0 || err) done(err);
- }
- function done(err) {
- nextTick(function() {
- cb(err, results);
- cb = noop;
- });
- }
- };
- module.exports = exports;
|