只有Kotlin协程的数据流?
有了RxJava,我已经习惯于我的存储库返回可观察的数据,只要有潜在的变化,这些数据就会自动更新。我通过在我的存储库中设置一个主题来实现这一点,该主题会得到相关更改信息的通知,并且像只有Kotlin协程的数据流?,kotlin,rx-java2,kotlinx.coroutines,Kotlin,Rx Java2,Kotlinx.coroutines,有了RxJava,我已经习惯于我的存储库返回可观察的数据,只要有潜在的变化,这些数据就会自动更新。我通过在我的存储库中设置一个主题来实现这一点,该主题会得到相关更改信息的通知,并且像getAll() 作为一个示例,以这个类似于psuedo的代码片段为例: fun getAll(): Observable<List<Model> { subject .filter { isChangeRelevant(it) } .startWith(in
getAll()
作为一个示例,以这个类似于psuedo的代码片段为例:
fun getAll(): Observable<List<Model> {
subject
.filter { isChangeRelevant(it) }
.startWith(initialChangeEvent)
.map { queryAll() }
}
fun getAll():可观察您可以使用Kotlin协程Channel
s
如果您只希望您的值像流一样发出(因此您可以对每个流发出),您可以使用product
创建它们(返回ReceiveChannel
):
您可以使用broadCastChannel.offer(value)
向频道发送值
要从通道接收值,可以使用简单的for each循环:
for (i in broadCastChannel.openSubscription()) {
//your values
}
请参阅。您的示例对于任何streams实现来说都是一件简单的事情,包括基本Java流、Java反应流或协同例程。因此,它没有举例说明合并可观察链、发散链、反馈链或跨线程通信,这些都是RxJava世界的面包和黄油。
val broadCastChannel = ConflatedBroadcastChannel<Int>()
for (i in broadCastChannel.openSubscription()) {
//your values
}