2017-02-17 57 views
0

我在我的ViewModel中有一个BehaviourSubject,我想要对它进行concav操作。所以,我想从DB获取用户列表。我有一个观察者有这个操作。我在我的视图中订阅了BehaviourSubject,然后调用getUsers,但没有结果。提前致谢。Concat Observables to BehaviourSubject

代码: 视图模型

public Observable<S> getState(Observable<S> input) { 
    return state.concatMap(o -> input); 
} 

@Override 
public Observable<UserListState> getUsers() { 
    getState(dataUseCase.getUserList()); 
} 

查看:

userListVM.getState().compose(bindToLifecycle()) 
      .subscribe(new Subscriber<>() { 
    void onNext(Object o){ 
    Log.d("onNext", o.toString()); // null !! 
    } 
}); 
userListVM.getUsers(); 

回答

1

这不会做任何事情,因为你没有订阅的userListVM.getUsers()观测。

您的代码并不准确,因为您有getState 0和1参数。相反,也许你应该考虑的是这样的:

userListVM.getUsers().subscribe(stateSubject::onNext); 

这会传播从可观察的项目的主题,但你将需要处理退订手动/