首页 > 解决方案 > Kotlin Coroutine Flow apis 是否有 Rx Subject 之类的桥接工具?

问题描述

  1. Channel(),BroadcastChannel()类似于 Rx Subjects。Channel有发送和接收方法使它像一个网桥或代理,新的Flowapis 中的等效方法是什么?

  2. 很多Channel功能都被弃用了,我们应该Channel从现在开始完全避免吗?还是对我们Channel同样重要Flow

标签: kotlinkotlin-coroutines

解决方案


目前Flow不支持与 Rx 相同的功能Subject,因为它代表数据流(即,您不应该能够从流的构建器外部发布值以流动。与 Rx 最接近的类似物SubjectBroadcastChannel,因为它支持多个接收器(而Channel只允许有一个接收器)。大多数Channel流方法,如map,flatMap和其他方法都被弃用,有利于Flow流方法。但是,您可以将您的方法表示ChannelFlowusingBroadcastChannel#asFlow()Channel#consumeAsFlow()方法。


推荐阅读