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