Kotlin Coroutine Flow API是否具有Rx Subject等桥接工具?

时间:2019-09-13 19:20:49

标签: kotlin kotlin-coroutines

  1. Channel()BroadcastChannel()与Rx Subject类似。 Channel既有发送方法又有接收方法,使其像桥或代理,在更新的Flow API中等效的方法是什么?

  2. 许多Channel函数已被弃用,从现在开始我们应该完全避免使用Channel吗?还是ChannelFlow同样重要?

1 个答案:

答案 0 :(得分:1)

目前Flow不支持与Rx Subject相同的功能,因为它表示数据流(即,您不应发布值)从流程的生成器外部流。 与Rx Subject最接近的类似物是BroadcastChannel,因为它支持多个接收器(而Channel仅允许一个接收器)。 大部分Channel流方法(例如mapflatMap和其他方法)已被弃用,而推荐使用Flow流方法。但是,您可以使用ChannelFlow方法将BroadcastChannel#asFlow()表示为Channel#consumeAsFlow()