【发布时间】:2022-01-20 15:16:30
【问题描述】:
我有一个方法 X,它通过 pub sub 从服务器获取数据。此方法返回一个流。我有另一种方法,它通过方法 X 订阅流,但如果数据与以前的数据不同,则只想从流中获取前 3 个最大值。我写了以下代码
fun subscribeToData() : Flow<List<MyData>> {
....
//incoming data
emit(list)
}
fun getUptoFirst3Items() {
subscribeToData()
.take(ITEM_COUNT) // ITEM_COUNT is 3
.distinctUntilChange() //only proceed if the data is different from the previous top 3 items
.mapIndex {
//do transformation
}
.collect { transformedListOf3Elements ->
}
}
问题:
在 collect{} 中,我获取的不是 3 个元素,而是流中传入的所有数据。
我不确定这里有什么问题?有人可以帮我吗?
【问题讨论】:
-
能否分享更多
subscribeToData的实现?