mapValues
mapValues(obj, iteratee, callback)
和map
一致,不过专为对象设计
通过iteratee
对obj
映射会返回一个新的对象
。iteratee
函数需要参数为obj
中每项的value
和key
,并在函数被执行完毕时进行回调。每一个回调都有两个参数,一个error
和obj
里的元素转换后的值。如果iteratee
函数返回错误,主回调函数将马上被执行,并报出错误。
注意:结果中键的顺序将不能保证。键会大致按照他们完成的顺序排列(但这是引擎特例)
参数:
Name | Type | Description |
---|---|---|
obj | Object | 要迭代的集合 |
iteration | AsyncFunction | 需要obj 中的每一项的值和键。当iteratee 完成转化将返回值,将使用 (value, key, callback) 的方式回调。 |
callbac | function | 所有iteratee功能完成后或出现错误时调用的回调函数 。结果为一个新的对象,转换过后的值在每项的右侧,用 (err, result) 的形式调用。 |
案例:
- async.mapValues({
- f1: 'file1',
- f2: 'file2',
- f3: 'file3'
- }, function (file, key, callback) {
- fs.stat(file, callback);
- }, function(err, result) {
- // result is now a map of stats for each file, e.g.
- // {
- // f1: [stats for file1],
- // f2: [stats for file2],
- // f3: [stats for file3]
- // }
- });
mapValuesLimit
mapValuesLimit(obj, limit, iteratee, callback)
和mapValue
一样,通过limit限制最大并行数。
mapValuesSeries
mapValuesSeries(obj, iteratee, callback)
和mapValues
一样,按顺序执行