kotlin - Kotlin Coroutine Flow api是否具有Rx Subject等桥接工具?

标签 kotlin kotlin-coroutines

  • Channel()BroadcastChannel()与Rx Subject相似。 Channel具有发送和接收方法,使其像桥接器或代理一样,在较新的Flow API中等效的方法是什么?
  • 不推荐使用许多Channel函数,从现在开始我们应该完全避免Channel吗?还是ChannelFlow同样重要?
  • 最佳答案

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

    关于kotlin - Kotlin Coroutine Flow api是否具有Rx Subject等桥接工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929294/

    相关文章:

    android - 协程解释

    kotlin - 在 lambda 内调用 withContext(Dispatchers.Main) 时获取 "Suspension functions can be called only within coroutine body"

    kotlin - 当我们有属性 setter 时, `Delegates.observable` 的用例是什么?

    android - 如何通过 kotlin 中的 Intent 传递自定义对象

    安卓 Kotlin : Mocking a free function using Mockito/PowerMock

    java - 使用Gradle和IntellIJ时Kotlin中未解析的引用 “java”

    android - 我不明白为什么当我将列表更改为 mutableStateOf 时 Jetpack Compose 不重新组合?

    unit-testing - 在 Kotlin 中测试 CoroutineScope 基础设施

    android - 为什么 fragment 中的生命周期范围.launch 会阻塞 UI 线程?

    android - 使用 kotlin 协程处理 retrofit 2.6 的无互联网连接错误