首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问“筛选器”:它是“kotlinx.coroutines.channels”中的内部

无法访问“筛选器”:它是“kotlinx.coroutines.channels”中的内部
EN

Stack Overflow用户
提问于 2022-05-28 21:00:58
回答 1查看 221关注 0票数 0

方法对Kotlin Coroutine版本的升级提出了"map“和"filter”两种方法。由于某些原因,我需要升级Coroutine版本,所以早期版本的Kotlin coroutine代码运行得非常好。但对此有很多想法。

代码语言:javascript
复制
import kotlinx.coroutines.channels.BroadcastChannel
import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.channels.filter
import kotlinx.coroutines.channels.map

object EventBus {
    @ObsoleteCoroutinesApi
    val bus: BroadcastChannel<Any> = BroadcastChannel(1)

    @ObsoleteCoroutinesApi
    fun send(o: Any) {
        CoroutineScope(Dispatchers.IO).launch {
            bus.send(o)
        }
    }

    @ObsoleteCoroutinesApi
    inline fun <reified T> asChannel(): ReceiveChannel<T> {
        return bus.openSubscription().filter { it is T }.map { it as T }
    }
}````


Can we replace the above usage of Map and Filter? Any help would be greatly appreciated.
EN

回答 1

Stack Overflow用户

发布于 2022-05-28 21:16:55

您应该严肃对待注释@ObsoleteCoroutinesApi,因为类BroadcastChannel已经完全不推荐使用SharedFlowMutableSharedFlow;也可以看到这个示例

这篇博文应该支持理解和迁移:共享流、广播频道

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72419231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档