UNPKG

continuable-hash

Version:

Turn a hash of continuables into a continuable containing a hash of values

32 lines (27 loc) 875 B
var maybeCallback = require("continuable/maybe-callback") module.exports = maybeCallback(hash) // hash := (tasks:Object<String, Continuable<T>>) // => Continuable<Object<String, T>> function hash(tasks) { return function continuable(callback) { var keys = Object.keys(tasks) var count = 0 var result = {} if (keys.length === 0) { return callback(null, result) } keys.forEach(function (key) { tasks[key](function (err, value) { if (err && result) { result = null callback(err) } else if (!err && result) { result[key] = value if (++count === keys.length) { callback(null, result) } } }) }) } }