Comletable.create{}的RxJava复杂行为



我们正在进行代码审查,我们得到了以下代码:

fun saveId(id: Int): Completable {
return Completable.defer {
preferencesHelper.saveId(id)
Completable.complete()
}
}

我的同事认为应该改为:

fun saveId(id: Int): Completable {
return Completable.defer {
Completable.create { emitter ->
try {
preferencesHelper.saveId(id)
emitter.onComplete()
} catch (t: Throwable) {
emitter.onError(t)
}
}
}
} 

我们需要帮助来澄清这两种方法在异步执行方面是否相同?

它们实际上是相同的,但不必要地冗长。使用fromAction可以简化它们

fun saveId(id: Int): Completable {
return Completable.fromAction {
preferencesHelper.saveId(id)
}
}

相关内容

  • 没有找到相关文章

最新更新