+str #15996 Add unorderedMapAsync

* rename mapFuture to mapAsync
* add unorderedMapAsync
* extract common things for emits to a trait