You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flow中是否存在RxJava的switchIfEmpty等效实现?

在Flow中实现RxJava switchIfEmpty的等效逻辑

完全可以实现,Flow 里的onEmpty操作符就是对应RxJavaswitchIfEmpty的等效方案,能完美满足你依次调用多数据源的需求。

对应你给出的RxJava代码,Flow的实现写法如下:

source1.getData()
    .onEmpty { source2.getData() }
    .onEmpty { source3.getData() }

关键说明

  • onEmpty是kotlinx-coroutines-core库自带的标准操作符,不需要额外引入依赖
  • 执行逻辑和RxJava版本完全一致:优先尝试source1,若source1没有发射任何元素就完成,则启动source2;如果source2同样为空,再触发source3
  • 只要某一个数据源发射了数据,后续的备用数据源就不会被执行

内容的提问来源于stack exchange,提问作者M Rajoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:42:01