gts13
suspend fun getOffers( categories: List<Category> ): Flow<Offer> = categories .asFlow() .flatMapMerge(concurrency = 20) { suspend { api.requestOffers(it) }.asFlow() }
CLOVIS
flatMapMerge
suspend fun getOffers( categories: List<Category> ): Flow<Offer> = categories .asFlow() .buffer() .flatMapMerge(concurrency = 20) { suspend { api.requestOffers(it) }.asFlow() } .map { // here I still see one result, not a list of results }
MR3Y
suspend fun getOffers( categories: List<Category> ): Flow<Offer> = coroutineScope { categories .map { async { api.requestOffers(it) } }.awaitAll() }.asFlow()
A modern programming language that makes developers happier.