kotlin - 带流的 LiveData 转换

标签 kotlin design-patterns android-livedata kotlin-flow

我是否阅读了更多有关 Flow 的内容?我开始认为您可以将 MutableLiveData switchMap 模式替换为与 Flow 类似的内容。

您可以通过实现 this 之类的东西来用流替换 LiveData 观察但我无法想象如何替换 switchMap 部分。

我所说的 switchMap 模式是这样的:

val mutableLiveData: MutableLiveData<SomeClass> = MutableLiveData()
val liveData: LiveData<SomeOtherClass> = mutableLiveData
    .switchMap {
       //call to repo
    }

有什么等价物吗?还是我完全遗漏了什么?甚至以完全错误的方式思考流程。

最佳答案

等价于 Flow.flatMapLatest((T) -> Flow<R>) .他们实际上删除了。 Flow.switchMap支持几个新功能mapLatest功能。

然而,这目前已被标记为实验性的,因此请谨慎使用。

关于kotlin - 带流的 LiveData 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66929467/

相关文章:

安卓, Kotlin 。 SpeechRecognizer 由于某种原因无法正常工作

c++ - 如何避免在循环内破坏和重新创建线程?

android - 具有共享偏好的 LiveData

android - 如何在不留下空间的情况下使 recyclerview 项目可见并消失 - Kotlin?

kotlin - 是否可以在 Kotlin DSL 中完全避免函数名称?

asynchronous - Kotlin 延续未恢复

Javascript 模式 : ( function(){} (function(){}) )

php - 为什么在 PHP 的 laravel 模型类中使用静态方法?

android - 如何避免 MediatorLiveData 的所有源调用同一函数?

Android MediatorLiveData源订阅不触发