【问题标题】:RxJava Completable.andThen never triggers the second CompletableRxJava Completable.andThen 永远不会触发第二个 Completable
【发布时间】:2021-01-26 18:17:56
【问题描述】:

我正在尝试使用 android 上的改造链接两个返回 Completable 的反应式调用:

val userRequest = ...
val languageRequest = ...

return userService.updateUser(userRequest)
    .andThen { userService.updateMessagingUserLanguages(user.id, languageRequest) }
    .doOnComplete { userRepository.updateUser(user) }

定义如下:

@PUT("$BASE_USER_URL")
fun updateUser(@Body user: UserRequest): Completable

@PUT("$BASE_URL/{userId}/languages")
fun updateMessagingUserLanguages(@Path("userId") userId: Long, @Body request: MessagingLanguageDTO): Completable

第一个 Completable 成功并返回状态为 200 的响应。但是,第二个调用永远不会触发(它永远不会出现在我的日志中,也不会通过我的断点)。

我在这里错过了什么?

【问题讨论】:

    标签: android kotlin retrofit rx-java rx-java-completable


    【解决方案1】:

    试试:

    andThen(userService.updateMessagingUserLanguages(user.id, languageRequest))
    

    IOW,将 lambda 表达式作为参数替换为您要添加到链中的实际 Completable

    【讨论】:

    • 两个小时零一个 lambda 后,我们到了……谢谢!
    • @Benjamin:这几乎就像我以前犯过这个错误一样!反复! ? 我很高兴它对你有用!
    猜你喜欢
    • 2014-05-15
    • 2012-06-20
    • 1970-01-01
    • 2022-08-18
    • 2021-05-22
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多