diff options
Diffstat (limited to 'lib/eachOf.js')
-rw-r--r-- | lib/eachOf.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/eachOf.js b/lib/eachOf.js index d16e1b3..5bb82e4 100644 --- a/lib/eachOf.js +++ b/lib/eachOf.js @@ -3,4 +3,43 @@ import eachOfLimit from './eachOfLimit'; import doLimit from './internal/doLimit'; +/** + * Like `each`, except that it passes the key (or index) as the second argument + * to the iteratee. + * + * @name eachOf + * @static + * @memberOf async + * @alias forEachOf + * @category Collection + * @param {Array|Object} coll - A collection to iterate over. + * @param {Function} iteratee - A function to apply to each + * item in `coll`. The `key` is the item's key, or index in the case of an + * array. The iteratee is passed a `callback(err)` which must be called once it + * has completed. If no error has occurred, the callback should be run without + * arguments or with an explicit `null` argument. Invoked with + * (item, key, callback). + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @example + * + * var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; + * var configs = {}; + * + * async.forEachOf(obj, function (value, key, callback) { + * fs.readFile(__dirname + value, "utf8", function (err, data) { + * if (err) return callback(err); + * try { + * configs[key] = JSON.parse(data); + * } catch (e) { + * return callback(e); + * } + * callback(); + * }); + * }, function (err) { + * if (err) console.error(err.message); + * // configs is now a map of JSON data + * doSomethingWith(configs); + * }); + */ export default doLimit(eachOfLimit, Infinity); |