Tolriq
05/19/2020, 12:31 PMgildor
05/19/2020, 12:41 PMchunked
operator for Flow (like existing one, but for List) would be perfect for this, but it doesn't exist yet, you can check issue tracker of Coroutines, there is some ad-hoc implementations as I remembergildor
05/19/2020, 12:42 PMgildor
05/19/2020, 12:43 PMTolriq
05/19/2020, 12:51 PMTolriq
05/19/2020, 12:52 PMgildor
05/20/2020, 3:45 AMgildor
05/20/2020, 3:45 AMgildor
05/20/2020, 3:47 AMTolriq
05/20/2020, 6:49 AMgildor
05/20/2020, 7:21 AMOk but how do I collect without closing then?What do you mean? flatMap concurrency limits how many Flow which it produced are consuming at the same time. It doesn’t close, just doesn’t subscribe on new
Tolriq
05/20/2020, 7:27 AMgildor
05/20/2020, 7:34 AMgildor
05/20/2020, 7:34 AMgildor
05/20/2020, 7:36 AMTolriq
05/20/2020, 7:49 AMTolriq
05/20/2020, 7:50 AMgildor
05/20/2020, 8:17 AMsomething that will be removedWhat does it mean?
Tolriq
05/20/2020, 8:22 AMgildor
05/20/2020, 8:25 AMTolriq
05/20/2020, 8:30 AMgildor
05/20/2020, 8:42 AMgildor
05/20/2020, 8:42 AMTolriq
05/20/2020, 8:45 AMTolriq
05/20/2020, 8:46 AMgildor
05/20/2020, 8:46 AMgildor
05/20/2020, 8:47 AMTolriq
05/20/2020, 8:49 AMgildor
05/20/2020, 8:54 AMgildor
05/20/2020, 8:55 AMgildor
05/20/2020, 8:55 AManother is looking at what will be available for purchaseOne, who is looking is collect, isn’t it?
Tolriq
05/20/2020, 8:57 AMgildor
05/20/2020, 8:57 AMval diamondMiner = flow {
while(true) {
emit(mineDimond())
}
}
val diamondStore = diamondMiner.transform { // your collector
buffer += it
if (buffer > 10) {
//sends value to buyer
emit(buffer.removeFirst())
}
}
// purchase idamngs
diamondStore.collect {
purchase(it)
}
Tolriq
05/20/2020, 9:03 AMgildor
05/20/2020, 9:07 AMgildor
05/20/2020, 9:07 AMgildor
05/20/2020, 9:08 AMTolriq
05/20/2020, 9:08 AMgildor
05/20/2020, 9:09 AMgildor
05/20/2020, 9:09 AMTolriq
05/20/2020, 9:10 AMgildor
05/20/2020, 9:10 AMgildor
05/20/2020, 9:10 AMgildor
05/20/2020, 9:11 AMTolriq
05/20/2020, 9:11 AMgildor
05/20/2020, 9:11 AMgildor
05/20/2020, 9:11 AMTolriq
05/20/2020, 9:11 AMgildor
05/20/2020, 9:12 AMgildor
05/20/2020, 9:12 AMTolriq
05/20/2020, 9:12 AMgildor
05/20/2020, 9:12 AMgildor
05/20/2020, 9:13 AMgildor
05/20/2020, 9:13 AMTolriq
05/20/2020, 9:13 AMgildor
05/20/2020, 9:16 AMgildor
05/20/2020, 9:17 AMTolriq
05/20/2020, 9:21 AMTolriq
05/20/2020, 9:21 AMgildor
05/20/2020, 9:21 AMgildor
05/20/2020, 9:21 AMgildor
05/20/2020, 9:22 AMgildor
05/20/2020, 9:22 AMgildor
05/20/2020, 9:23 AMAnyway don’t want to take too much time from you, you already helped a lot.Hope it helped Reactive approach requires a bit different mindset, so it needs time to adapt tasks to it, but it has many advantages Like in your case consumer is simple, all caching logic is hidden above, no need to request particular amount of items
Tolriq
05/20/2020, 9:24 AM