aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/promises.js19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/promises.js b/lib/promises.js
index f008200..0da48bb 100644
--- a/lib/promises.js
+++ b/lib/promises.js
@@ -7,8 +7,23 @@ exports.resolve = bluebird.resolve;
exports.reject = bluebird.reject;
exports.forEachSeries = function(array, func) {
- return bluebird.mapSeries(array, func).then(function() {
- });
+ var arrayIndex = 0;
+
+ var deferred = defer();
+
+ var next = function() {
+ if (arrayIndex < array.length) {
+ var element = array[arrayIndex];
+ arrayIndex++;
+ func(element).then(next, deferred.reject);
+ } else {
+ deferred.resolve();
+ }
+ };
+
+ next();
+
+ return deferred.promise;
};
var props = exports.props = function(obj) {