map
map(coll, iteratee, callback)
通过iteratee
函数,对coll
中的每个值进行映射,产生一个新的集合。iteratee
使用coll
中的元素,执行完成之后,会进行回调。这些回调中每一个有两个参数,error
和已经映射过的值。如果回调传递出一个错误,函数将马上进行主回调,并显示错误信息。
注意:因为这些功能 iteratee
并行执行,所以并不能保证可以按顺序执行完成。但是,得到的记过数组将和原来的cool
顺序保持一致。
如果map
传递一个Object
,结果将返回一个数组。数组的排列顺序大致按照原始对象的键的顺序(因为JavaScript
引擎可能排序会变化)
参数:
Name | Type | Description |
---|---|---|
coll | Array/Iterable/Object | 要迭代的集合 |
iteration | AsyncFunction | 对coll 里的每个项进行操作的异步函数。当iteratee 完成转化,将使用 (item, callback) 的方式回调 |
callbac | function | 所有iteratee功能完成后或出现错误时调用的回调函数 。结果为一个数组,用 (err, result) 的形式调用。 |
案例:
- async.map(['file1','file2','file3'], fs.stat, function(err, results) {
- // results 为 检查每个文件的结果组成的数组
- });
mapLimit
mapLimit(coll, limit, iteratee, callback)
和map
一样,通过limit限制了并行的最大数
mapSeries
mapSeries(coll, iteratee, callback)
和map
一样,按顺序执行