Refactored out of event-stream
Create a through stream from an asyncronous function.
var map =
Each map MUST call the callback. It may callback with data, with an error or with no arguments,
callback() drop this data.
this makes the map work like
callback(null,null) is not the same, and will emit
callback(null, newData) turn data into newData
callback(error) emit an error for this item.
Note: if a callback is not called,
mapwill think that it is still being processed,
every call must be answered or the stream will not know when to end.
Also, if the callback is called more than once, every call but the first will be ignored.
booleancontinue mapping even if error occured. On error