gpt4 book ai didi

android - 如何让这段用 RxKotlin 编写的代码块更干净,避免阻塞线程?

转载 作者:行者123 更新时间:2023-11-29 18:25:52 29 4
gpt4 key购买 nike

我有这个函数,它获取一个参数并首先检查它的值。如果它为空,则从返回 Single 的 fisrtFun() 的结果中获取它的值。

在该参数是否为 null 之后,它返回将参数作为输入的 secondFun() 的结果

fun getUserEvents(id: String?): Single<String> {
return if (userId == null) {
firstFun().flatMap { id->
secondFun(id)
}
} else {
secondFun(id)
}
}

但是如你所见,我使用了 if-else block 并且多次编写了 secondFun()

所以我试着让它更干净

fun getUserEvents(id: String?): Single<String> {
val id = userId ?: fisrtFun().blockingGet()!!
return secondFun(id)
}

我想知道是否有更好的方法实现这个功能而不使用blockingGet()来避免阻塞线程

最佳答案

像这样的东西应该可以工作:

fun getUserEvents(id: String?): Single<String> {
val idSingle = if (userId == null) firstFun() else Single.just(id)
return idSingle.flatMap { id ->
secondFun(id)
}
}

关于android - 如何让这段用 RxKotlin 编写的代码块更干净,避免阻塞线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59104815/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com