1.Flow流
kotlin协程中使用刮起函数可以实现非阻塞的执行任务并将结果返回,但是只能返回单个计算结果,多个计算结果返回的话可以使用Flow。
2.热流和冷流
1.通过flow{...}返回的就是冷流同是同步的
2.通过channeFlow返回的就是热流是异步的
3.同步的比异步的话费时间
4.flow{...}可以通过flowOn切换成子线程后和channerFlow花的时间差不多
热数据流迫切,尽可能快的产生元素独立于消费者,可以是集合和channel通道 冷数据惰性,在终端操作的上按需处理元素
3.flow流操作符
collect:收集结果
catch: 捕获异常
filter:根据条件过滤
map:转换流中的每个元素
flatmap:转换流中的每个并将其转换为另外一个flow
zip:合并2个流