Kotlin协同程序流API是否有Rx Subject这样的桥接工具?
Kotlin协同程序流API是否有Rx Subject这样的桥接工具?,kotlin,kotlin-coroutines,Kotlin,Kotlin Coroutines,Channel()Channel具有发送和接收两种方法,使其像一个桥接器或代理,在较新的FlowAPI中有什么等效方法 很多Channel功能都被弃用了,我们应该从现在开始完全避免Channel吗?或者Channel对Flow对我们来说同样重要 目前,Flow不支持与RxSubject相同的功能,因为它代表一个冷的数据流(即,您不能将值从流的构建器外部发布到流)。 与Rx主题最接近的模拟是广播频道,因为它支持多个接收器(而频道只允许有一个接收器)。 大多数Channel流方法,如map、flat
Channel()Channel
具有发送和接收两种方法,使其像一个桥接器或代理,在较新的Flow
API中有什么等效方法
很多Channel
功能都被弃用了,我们应该从现在开始完全避免Channel
吗?或者Channel
对Flow
对我们来说同样重要
目前,Flow
不支持与RxSubject
相同的功能,因为它代表一个冷的数据流(即,您不能将值从流的构建器外部发布到流)。
与Rx主题
最接近的模拟是广播频道
,因为它支持多个接收器(而频道
只允许有一个接收器)。
大多数Channel
流方法,如map
、flatMap
等,都被弃用为Flow
流方法。但相反,您可以使用BroadcastChannel#asFlow()
和Channel#consumerasflow()将您的频道
表示为Flow
方法。所以频道
还没有完全放弃,只有它的操作符被弃用,频道
和频道
本身的生成器方法在将来仍然可用?我所需要的就是将频道
转换为流
,继续使用映射
之类的操作符!事实上,我认为在可预见的将来,Channel
类本身不会被弃用,因为它们用于在Flow
之间进行内部通信。例如,尝试查看一些Flow
方法,如debounce
,您将看到通道在内部使用ode>PRODUCT
方法在那里创建了一个单独的协程,它从外部流
收集数据,然后用于执行去抖动
逻辑。非常感谢!我注意到流
方法逻辑中也使用了通道
。有些时候我认为这是一件非常糟糕的事情,因为almos它的所有方法都突然被弃用了。。。