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

相关推荐
aqi005 小时前
FFmpeg开发笔记(九十一)基于Kotlin的Android直播开源框架RootEncoder
android·ffmpeg·kotlin·音视频·直播·流媒体
来来走走16 小时前
Android开发(Kotlin) LiveData的基本了解
android·开发语言·kotlin
dongdeaiziji18 小时前
深入理解 Kotlin 中的构造方法
android·kotlin
q***R3081 天前
Kotlin注解处理
android·开发语言·kotlin
4***99741 天前
Kotlin序列处理
android·开发语言·kotlin
t***D2641 天前
Kotlin在服务端开发中的生态建设
android·开发语言·kotlin
路人甲ing..1 天前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
路人甲ing..1 天前
Android Studio 模拟器报错 The emulator process for AVD xxxxx has terminated.
android·java·ide·kotlin·android studio
Kapaseker1 天前
五分钟实战 Compose 展开/收起动画
android·kotlin
用户69371750013842 天前
8.Kotlin 类:类的基础:主构造函数与次构造函数
android·后端·kotlin