Kotlin 协程 Flow 操作符总结

RxJava2 操作符总结

Kotlin 协程 Flow 操作符总结


Flow

  • asFlow flowOf

  • flow

  • collect

  • collectIndex

  • collectLatest


  • onStart

  • onCompletion

  • onEmpty 无数据正常结束

  • catch 捕获上游异常,不影响数据流、结构化的流程

  • retry 遇到异常,重启上游flow链条

  • retryWhen


  • flowOn 切换上游线程、开启缓冲;多个连续调用融合属性,相同属性保留第一次调用;与buffer、channelFlow也融合

  • launchIn

  • buffer 切换线程,开启缓冲;多个融合,策略默认容量大小相加,策略非默认容量用最新的

  • conflate 只缓冲一条数据


  • emit 影响整个流程的关键点

  • withIndex 加索引

  • onEach 执行自己代码块

操作Flow对象

  • merge

  • flattenConcat 串行合并

  • flattenMerge 并行合并

  • flattenMapConcat 转换成Flow并串行合并

  • flattenMapMerge 转换成Flow并并行合并

  • flattenMapLatest

  • combine 表达式合并

  • zip 表达式合并,每个元素只使用一次

  • transformCombine


  • first() / firstOrNull()
  • last() / lastOrNull()
  • single() / singleOrNull()
  • count()
  • toList() / toSet() / toCollection()
  • produceIn()

操作数据流

  • filter

  • filterNot

  • filterNotNull

  • filterIsInstance 类型过滤

  • distinctUntilChanged 去重

  • distinctUntilChangedBy 表达式去重

  • drop dropWhile 丢弃

  • take takeWhile 戒断

  • timeout 超时

  • sample 定时采样

  • debounce 时间窗口内最新数据


  • map 转换

  • mapNotNull 转换并过滤

  • mapLatest 只转换最新一条;异步的,有缓冲;上下文融合

  • transform

  • transformWhile

  • transformLatest


  • reduce

  • runningReduce

  • fold

  • runningFold(scan)

  • chunked 返回分块list

相关推荐
btown15 小时前
Kotlin 版 MyBatis-Plus 查询优雅解决方案
kotlin
小二·18 小时前
车载数字座舱实战:用魔珐星云打造下一代智能驾乘助手(附 Android/Kotlin 完整代码)
开发语言·kotlin
我命由我1234519 小时前
Android 开发问题:java.lang.NoSuchMethodError:No virtual method readAllBytes()
android·java·java-ee·kotlin·android studio·android-studio·android runtime
Kapaseker1 天前
你是不是还没用过 select?实战 Kotlin select
android·kotlin
plainGeekDev2 天前
synchronized → Coroutines
android·java·kotlin
唐青枫2 天前
Java Gradle 实战指南:从 Wrapper、Kotlin DSL 到 Spring Boot 多模块构建
java·kotlin·gradle
帅次3 天前
Kotlin Flow 与 StateFlow:UI 单向数据流基础
开发语言·ui·kotlin·stateflow·onlifecycle
Kapaseker3 天前
Sequence 一定比 List 快?等等,我们先从基础讲起
android·kotlin
zhangjin11204 天前
Android Studio创建HelloWorld(kotlin版本)
android·kotlin·android studio
怣疯knight4 天前
kotlin安卓应用打包编译卡死的可能原因
android·kotlin