mapValues

  1. mapValues(obj, iteratee, callback)

map一致,不过专为对象设计

通过iterateeobj映射会返回一个新的对象iteratee函数需要参数为obj中每项的valuekey,并在函数被执行完毕时进行回调。每一个回调都有两个参数,一个errorobj里的元素转换后的值。如果iteratee函数返回错误,主回调函数将马上被执行,并报出错误。

注意:结果中键的顺序将不能保证。键会大致按照他们完成的顺序排列(但这是引擎特例)

参数:

Name Type Description
obj Object 要迭代的集合
iteration AsyncFunction 需要obj中的每一项的值和键。当iteratee完成转化将返回值,将使用 (value, key, callback) 的方式回调。
callbac function 所有iteratee功能完成后或出现错误时调用的回调函数 。结果为一个新的对象,转换过后的值在每项的右侧,用 (err, result) 的形式调用。

案例:

  1. async.mapValues({
  2. f1: 'file1',
  3. f2: 'file2',
  4. f3: 'file3'
  5. }, function (file, key, callback) {
  6. fs.stat(file, callback);
  7. }, function(err, result) {
  8. // result is now a map of stats for each file, e.g.
  9. // {
  10. // f1: [stats for file1],
  11. // f2: [stats for file2],
  12. // f3: [stats for file3]
  13. // }
  14. });

mapValuesLimit

  1. mapValuesLimit(obj, limit, iteratee, callback)

mapValue一样,通过limit限制最大并行数。

mapValuesSeries

  1. mapValuesSeries(obj, iteratee, callback)

mapValues一样,按顺序执行