是否有计划或现有的方法来在Kotlin Flow中复制RX的replay/refcount功能?
我需要一些介于广播频道的多播功能(这样消费者就不会为事件而争斗)和常规频道的缓存/挂起功能(这样消费者就可以接收一些积压的事件)之间的东西。
发布于 2019-12-07 06:02:46
可能有点晚了,但仍然可能有用。有一个open issue可以实现这个行为,所以我们迟早会有它。此外,还有关于connectable flow的讨论,但我看不出他们是否实施它的决定。
更新:看起来KEEP-1261已经过时了,1716现在更相关了。
发布于 2020-12-27 12:37:10
Kotlin Flow current支持shareIn函数,用于向新的收集器重放上一次发射的项目。来自StateFlow and SharedFlow的代码片段
val latestNews : Flow<List<ArticleHeadline>> = flow {
...
}.shareIn(
externalScope,
replay = 1,
started = SharingStarted.WhileSubscribed()
)https://stackoverflow.com/questions/58300873
复制相似问题