集合(七) mapValues - sanlex/async_chinese GitHub Wiki

mapValues

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) 的形式调用。

案例:

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一样,按顺序执行

⚠️ **GitHub.com Fallback** ⚠️