我如何将 Single 链接到 Completable,以便在 Completable 完成时订阅它?
repository.downloadUser()
是 Single。
根据调试,似乎此方法中的 Single 被调用但从未订阅(即 downloadUser()
方法被调用但它创建的 Single 中没有代码被调用)。
问题是,如何使用原始订阅者在链中订阅 repository.downloadUser()
Single?我错过了什么或做错了什么?或者这是不可能的?
fun login(username: String, password: String): Completable {
return repository.login(username, password)
.andThen {
repository.downloadUser() // This is a Single
.flatMap { downloadedUser ->
user = downloadedUser
it.toSingle()
}
// When I get this part working there are other things I want to
// chain as well.
}
编辑:我可能会将其分成两个调用,一个用于 Completable,另一个用于其余部分。但是,如果有人知道,知道这是否可能仍然是一件好事......
最佳答案
很确定这是您对大括号的使用。 Kotlin 认为您正在调用 RxJava 方法
public final Completable andThen(CompletableSource next) {
return concatWith(next);
}
表示返回类型是Completable
,但您希望它是Single
。你需要的是
repository.login(username, password)
.andThen(repository.downloadUser())
.flatmap { ... }
关于android - RxJava2 如何将 Single 链接到 Completable,以便在 Completable 完成时订阅它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50636749/