1

我正在尝试链接两个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

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

我在这里想念什么?

4

1 回答 1

2

尝试:

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

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

于 2020-10-12T12:22:20.430 回答