对集合中的每一个元素,执行某个异步操作,得到结果。所有的结果将汇总到最终的callback里。与each的区别是,each只关心操作不管最后的值,而map关心的最后产生的值。
提供了两种方式:
- 并行执行。同时对集合中所有元素进行操作,结果汇总到最终callback里。如果出错,则立刻返回错误以及已经执行完的任务的结果,未执行完的占个空位
- 顺序执行。对集合中的元素一个一个执行操作,结果汇总到最终callback里。如果出错,则立刻返回错误以及已经执行完的结果,未执行的被忽略。
接口:
map(arr, iterator(item, callback), callback(err, results))
测试数据:
map
代码:
结果:
这里需要说明一下map和concat的区别,只有一点,最终结果的顺序。map是按照iterator之中的顺序返回结果,而concat是按照先执行完毕的顺序返回结果。
代码:
结果:
如果出错:
代码:
结果:
mapSeries
代码:
结果:
如果出错:
代码:
结果:
mapLimit
代码:
结果:
网友评论