Kotlin协程flow,firstOrNull只要最先first,lastOrNull只要最后
<!-- https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core -->
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-core</artifactId>
<version>1.7.3</version>
<type>pom</type>
</dependency>
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.runBlocking
fun main(args: Array<String>) {
runBlocking {
val firstResult = load()
.firstOrNull() //虽然发射很多数据,但只要第1次发射过来的数据。
println(firstResult)
val lasResult = load()
.lastOrNull() //虽然发射很多数据,但只要最后1次发射过来的数据。
println(lasResult)
}
}
fun load() = flow {
for (i in 1..5) {
emit(i)
delay(10)
}
}
kotlin协程flow retry功能函数返回失败后重试(4)_zhangphil的博客-CSDN博客一、flow ,emit,onCompletion,collect。kotlin协程flow retryWhen当功能函数加载失败后重试(3)_zhangphil的博客-CSDN博客。kotlin协程flow retryWhen当功能函数加载失败后重试(3)加载一次失败,重试1次成功。kotlin协程flow retry retryWhen(2)_zhangphil的博客-CSDN博客。kotlin协程flow retry retryWhen(2)二、retryWhen。初次加载失败,重试两次成功。https://blog.csdn.net/zhangphil/article/details/130093111kotlin协程flow retryWhen当功能函数加载失败后重试(3)_zhangphil的博客-CSDN博客kotlin协程flow retryWhen当功能函数加载失败后重试(3)加载一次失败,重试1次成功。https://blog.csdn.net/zhangphil/article/details/130092299