我试图弄清楚如何从网络中获取结果,坚持并将响应主体返回给Observable。 像这样:
@Override
public Observable<DefaultUserResponse> createUser(CreateUserCommand command) {
return this.userService.createUser(command)
.map(defaultUserResponse -> {
User user = new User();
defaultUserResponse.setUser(user);
return defaultUserResponse;
}).flatMap(defaultUserResponse -> persist(defaultUserResponse.getUser()));
}
Observable<User> persist(User user) {return null;}
步骤:
我该怎么办?
由于
答案 0 :(得分:1)
考虑使用Completable类型作为持久化方法(如果您不关心返回的值):
Completable persist(User user) {
return Completable.fromCallable(() -> {
//persisting
return null;
}
}
然后您可以使用andThen
运算符等待持续完成并进一步推送您的值:
...
.flatMap(defaultUserResponse -> persist(defaultUserResponse.getUser()).andThen(Observable.just(defaultUserResponse)));
或者,如果您仍希望使用Observable
进行保留,请使用其他flatMap
代替andThen
。