Kotlin 向广播频道发射/发送流值
在Kotlin流/通道的问题上,我一直很困惑。本质上,我希望获取流发出的值,并立即将它们发送到通道中。然后,我们通过公开的方法将该通道作为流订阅。这里的用例是拥有一个始终处于活动状态的频道订阅和一个可以独立打开和关闭的流Kotlin 向广播频道发射/发送流值,kotlin,kotlin-coroutines,kotlinx.coroutines.channels,kotlin-coroutines-flow,Kotlin,Kotlin Coroutines,Kotlinx.coroutines.channels,Kotlin Coroutines Flow,在Kotlin流/通道的问题上,我一直很困惑。本质上,我希望获取流发出的值,并立即将它们发送到通道中。然后,我们通过公开的方法将该通道作为流订阅。这里的用例是拥有一个始终处于活动状态的频道订阅和一个可以独立打开和关闭的流 private val dataChannel = BroadcastChannel<Data>(1) suspend fun poll() { poller.start(POLLING_PERIOD_MILLISECONDS) .col
private val dataChannel = BroadcastChannel<Data>(1)
suspend fun poll() {
poller.start(POLLING_PERIOD_MILLISECONDS)
.collect {
dataChannel.send(it)
}
}
suspend fun stopPoll() {
poller.stop()
}
suspend fun subscribe(): Flow<Data> {
return dataChannel.asFlow()
}
private val dataChannel=广播频道(1)
暂停投票{
轮询器启动(轮询周期为毫秒)
.收集{
数据通道发送(it)
}
}
暂停{
poller.stop()
}
suspend fun subscribe():流{
返回dataChannel.asFlow()
}
我这里的简单用例是一个轮询器,它返回一个channelFlow。理想情况下,我可以在collect方法中发射到通道。但这似乎不起作用。我的新手团队认为,因为收集和发送是暂停的,所以排放在收集中暂停,而我们被卡住了
是否有任何流或通道的内置函数可以处理此行为或以任何其他方式实现此行为