diff options
Diffstat (limited to 'lib/utils/promise.js')
-rw-r--r-- | lib/utils/promise.js | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/utils/promise.js b/lib/utils/promise.js index 82f4a60..adcc1c3 100644 --- a/lib/utils/promise.js +++ b/lib/utils/promise.js @@ -32,7 +32,19 @@ function some(arr, iter) { }, Q()); } +// Map an array using an async (promised) iterator +function map(arr, iter) { + return reduce(arr, function(prev, entry, i) { + return Q(iter(entry, i)) + .then(function(out) { + prev.push(out); + return prev; + }); + }, []); +} + module.exports = Q; module.exports.reduce = reduce; +module.exports.map = map; module.exports.serie = serie; module.exports.some = some; |