kotlin - Kotlin Coroutine Flow apis 是否有 Rx Subject 之类的桥接工具?
问题描述
Channel()
,BroadcastChannel()
类似于 RxSubject
s。Channel
有发送和接收方法使它像一个网桥或代理,新的Flow
apis 中的等效方法是什么?很多
Channel
功能都被弃用了,我们应该Channel
从现在开始完全避免吗?还是对我们Channel
同样重要Flow
?
解决方案
目前Flow
不支持与 Rx 相同的功能Subject
,因为它代表冷数据流(即,您不应该能够从流的构建器外部发布值以流动。与 Rx 最接近的类似物Subject
是BroadcastChannel
,因为它支持多个接收器(而Channel
只允许有一个接收器)。大多数Channel
流方法,如map
,flatMap
和其他方法都被弃用,有利于Flow
流方法。但是,您可以将您的方法表示Channel
为Flow
usingBroadcastChannel#asFlow()
和Channel#consumeAsFlow()
方法。
推荐阅读
- python - 用分类变量绘制箱线图
- google-sheets - 如何在谷歌表格上为条件 IF 添加多个数字?
- javascript - cgi 和现代 javascript 用法的区别
- docker - 将 Kubernetes 中的端口映射到两个 Flask 应用程序(前端和后端)
- integer - 引用和不引用之间的流口水整数类型差异
- excel - 如何将动态/VBA 生成的范围放入单元格的公式中?
- python - 我的函数应该返回匹配的值对,但返回一对匹配和一对不匹配
- google-chrome - 如何为 Media Source Extension API 创建视频和音频文件?
- junit - 为新线程设置系统属性
- asp.net - ASP.NET 文件上传并在同一页面上显示 .NET Core 2.1