source: trip-planner-front/node_modules/async-each/index.js@ 8d391a1

Last change on this file since 8d391a1 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.2 KB
Line 
1// async-each MIT license (by Paul Miller from https://paulmillr.com).
2(function(globals) {
3 'use strict';
4 var each = function(items, next, callback) {
5 if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument');
6 if (typeof next !== 'function') throw new TypeError('each() expects function as second argument');
7 if (typeof callback !== 'function') callback = Function.prototype; // no-op
8
9 if (items.length === 0) return callback(undefined, items);
10
11 var transformed = new Array(items.length);
12 var count = 0;
13 var returned = false;
14
15 items.forEach(function(item, index) {
16 next(item, function(error, transformedItem) {
17 if (returned) return;
18 if (error) {
19 returned = true;
20 return callback(error);
21 }
22 transformed[index] = transformedItem;
23 count += 1;
24 if (count === items.length) return callback(undefined, transformed);
25 });
26 });
27 };
28
29 if (typeof define !== 'undefined' && define.amd) {
30 define([], function() {
31 return each;
32 }); // RequireJS
33 } else if (typeof module !== 'undefined' && module.exports) {
34 module.exports = each; // CommonJS
35 } else {
36 globals.asyncEach = each; // <script>
37 }
38})(this);
Note: See TracBrowser for help on using the repository browser.