aboutsummaryrefslogtreecommitdiff
path: root/node_modules/when/parallel.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/when/parallel.js')
-rw-r--r--node_modules/when/parallel.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/when/parallel.js b/node_modules/when/parallel.js
new file mode 100644
index 000000000..6616a82be
--- /dev/null
+++ b/node_modules/when/parallel.js
@@ -0,0 +1,39 @@
+/** @license MIT License (c) copyright 2011-2013 original author or authors */
+
+/**
+ * parallel.js
+ *
+ * Run a set of task functions in parallel. All tasks will
+ * receive the same args
+ *
+ * @author Brian Cavalier
+ * @author John Hann
+ */
+
+(function(define) {
+define(function(require) {
+
+ var when = require('./when');
+ var all = when.Promise.all;
+ var slice = Array.prototype.slice;
+
+ /**
+ * Run array of tasks in parallel
+ * @param tasks {Array|Promise} array or promiseForArray of task functions
+ * @param [args] {*} arguments to be passed to all tasks
+ * @return {Promise} promise for array containing the
+ * result of each task in the array position corresponding
+ * to position of the task in the tasks array
+ */
+ return function parallel(tasks /*, args... */) {
+ return all(slice.call(arguments, 1)).then(function(args) {
+ return when.map(tasks, function(task) {
+ return task.apply(void 0, args);
+ });
+ });
+ };
+
+});
+})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
+
+