對集合中的每一個元素,執(zhí)行某個異步操作,得到結(jié)果。所有的結(jié)果將匯總到最終的callback里。與each的區(qū)別是,each只關(guān)心操作不管最后的值,而map關(guān)心的最后產(chǎn)生的值。
提供了兩種方式:
- 并行執(zhí)行。同時對集合中所有元素進(jìn)行操作,結(jié)果匯總到最終callback里。如果出錯,則立刻返回錯誤以及已經(jīng)執(zhí)行完的任務(wù)的結(jié)果,未執(zhí)行完的占個空位
- 順序執(zhí)行。對集合中的元素一個一個執(zhí)行操作,結(jié)果匯總到最終callback里。如果出錯,則立刻返回錯誤以及已經(jīng)執(zhí)行完的結(jié)果,未執(zhí)行的被忽略。
接口:
map(arr, iterator(item, callback), callback(err, results))
測試數(shù)據(jù):
map
代碼:
結(jié)果:
這里需要說明一下map和concat的區(qū)別,只有一點,最終結(jié)果的順序。map是按照iterator之中的順序返回結(jié)果,而concat是按照先執(zhí)行完畢的順序返回結(jié)果。
代碼:
結(jié)果:
如果出錯:
代碼:
結(jié)果:
mapSeries
代碼:
結(jié)果:
如果出錯:
代碼:
結(jié)果:
mapLimit
代碼:
結(jié)果: