source: frontend/node_modules/async/parallel.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 11 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 5.4 KB
Line 
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = parallel;
7
8var _eachOf = require('./eachOf.js');
9
10var _eachOf2 = _interopRequireDefault(_eachOf);
11
12var _parallel2 = require('./internal/parallel.js');
13
14var _parallel3 = _interopRequireDefault(_parallel2);
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18/**
19 * Run the `tasks` collection of functions in parallel, without waiting until
20 * the previous function has completed. If any of the functions pass an error to
21 * its callback, the main `callback` is immediately called with the value of the
22 * error. Once the `tasks` have completed, the results are passed to the final
23 * `callback` as an array.
24 *
25 * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about
26 * parallel execution of code. If your tasks do not use any timers or perform
27 * any I/O, they will actually be executed in series. Any synchronous setup
28 * sections for each task will happen one after the other. JavaScript remains
29 * single-threaded.
30 *
31 * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the
32 * execution of other tasks when a task fails.
33 *
34 * It is also possible to use an object instead of an array. Each property will
35 * be run as a function and the results will be passed to the final `callback`
36 * as an object instead of an array. This can be a more readable way of handling
37 * results from {@link async.parallel}.
38 *
39 * @name parallel
40 * @static
41 * @memberOf module:ControlFlow
42 * @method
43 * @category Control Flow
44 * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection of
45 * [async functions]{@link AsyncFunction} to run.
46 * Each async function can complete with any number of optional `result` values.
47 * @param {Function} [callback] - An optional callback to run once all the
48 * functions have completed successfully. This function gets a results array
49 * (or object) containing all the result arguments passed to the task callbacks.
50 * Invoked with (err, results).
51 * @returns {Promise} a promise, if a callback is not passed
52 *
53 * @example
54 *
55 * //Using Callbacks
56 * async.parallel([
57 * function(callback) {
58 * setTimeout(function() {
59 * callback(null, 'one');
60 * }, 200);
61 * },
62 * function(callback) {
63 * setTimeout(function() {
64 * callback(null, 'two');
65 * }, 100);
66 * }
67 * ], function(err, results) {
68 * console.log(results);
69 * // results is equal to ['one','two'] even though
70 * // the second function had a shorter timeout.
71 * });
72 *
73 * // an example using an object instead of an array
74 * async.parallel({
75 * one: function(callback) {
76 * setTimeout(function() {
77 * callback(null, 1);
78 * }, 200);
79 * },
80 * two: function(callback) {
81 * setTimeout(function() {
82 * callback(null, 2);
83 * }, 100);
84 * }
85 * }, function(err, results) {
86 * console.log(results);
87 * // results is equal to: { one: 1, two: 2 }
88 * });
89 *
90 * //Using Promises
91 * async.parallel([
92 * function(callback) {
93 * setTimeout(function() {
94 * callback(null, 'one');
95 * }, 200);
96 * },
97 * function(callback) {
98 * setTimeout(function() {
99 * callback(null, 'two');
100 * }, 100);
101 * }
102 * ]).then(results => {
103 * console.log(results);
104 * // results is equal to ['one','two'] even though
105 * // the second function had a shorter timeout.
106 * }).catch(err => {
107 * console.log(err);
108 * });
109 *
110 * // an example using an object instead of an array
111 * async.parallel({
112 * one: function(callback) {
113 * setTimeout(function() {
114 * callback(null, 1);
115 * }, 200);
116 * },
117 * two: function(callback) {
118 * setTimeout(function() {
119 * callback(null, 2);
120 * }, 100);
121 * }
122 * }).then(results => {
123 * console.log(results);
124 * // results is equal to: { one: 1, two: 2 }
125 * }).catch(err => {
126 * console.log(err);
127 * });
128 *
129 * //Using async/await
130 * async () => {
131 * try {
132 * let results = await async.parallel([
133 * function(callback) {
134 * setTimeout(function() {
135 * callback(null, 'one');
136 * }, 200);
137 * },
138 * function(callback) {
139 * setTimeout(function() {
140 * callback(null, 'two');
141 * }, 100);
142 * }
143 * ]);
144 * console.log(results);
145 * // results is equal to ['one','two'] even though
146 * // the second function had a shorter timeout.
147 * }
148 * catch (err) {
149 * console.log(err);
150 * }
151 * }
152 *
153 * // an example using an object instead of an array
154 * async () => {
155 * try {
156 * let results = await async.parallel({
157 * one: function(callback) {
158 * setTimeout(function() {
159 * callback(null, 1);
160 * }, 200);
161 * },
162 * two: function(callback) {
163 * setTimeout(function() {
164 * callback(null, 2);
165 * }, 100);
166 * }
167 * });
168 * console.log(results);
169 * // results is equal to: { one: 1, two: 2 }
170 * }
171 * catch (err) {
172 * console.log(err);
173 * }
174 * }
175 *
176 */
177function parallel(tasks, callback) {
178 return (0, _parallel3.default)(_eachOf2.default, tasks, callback);
179}
180module.exports = exports.default;
Note: See TracBrowser for help on using the repository browser.