uhe
04/06/2017, 7:37 AMsuspend fun <T, R> Iterable<T>.mapAsync(coroutineContext: CoroutineContext, transform: suspend (T) -> R): List<R> {
val deferredElements = mutableListOf<Deferred<R>>()
for (elem in this)
deferredElements += async(coroutineContext) { transform(elem) }
return deferredElements.map { it.await() }
}