代码之家  ›  专栏  ›  技术社区  ›  Benjamin Kevin Rameshwaran

RxJava公司可完成的从不触发第二个可完成的

  •  1
  • Benjamin Kevin Rameshwaran  · 技术社区  · 4 年前

    我试着连接两个反应性呼叫 Completable 在android上使用改装:

    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
    

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

    我错过了什么?

    1 回复  |  直到 4 年前
        1
  •  1
  •   CommonsWare    4 年前

    尝试:

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

    下面,将lambda表达式作为参数替换为 Completable 你想添加到链条上。