You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*! async-each - MIT License (c) 2016 Paul Miller (paulmillr.com) */ (function (globals) { 'use strict'; var each = function (items, next, callback) { if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument'); if (typeof next !== 'function') throw new TypeError('each() expects function as second argument'); if (typeof callback !== 'function') callback = Function.prototype; // no-op
var total = items.length; if (total === 0) return callback(undefined, items); var transformed = new Array(total); var transformedCount = 0; var returned = false;
items.forEach(function (item, index) { next(item, function (error, transformedItem) { if (returned) return; if (error) { returned = true; return callback(error); } transformed[index] = transformedItem; transformedCount += 1; // can't use index: last item could take more time
if (transformedCount === total) return callback(undefined, transformed); }); }); };
if (typeof define !== 'undefined' && define.amd) { define([], function () { return each; }); // RequireJS
} else if (typeof module !== 'undefined' && module.exports) { module.exports = each; // CommonJS
} else { globals.asyncEach = each; // <script>
} })(this);
|