Concat Observables to BehaviourSubject

时间:2017-02-17 19:25:17

标签: android rx-java behaviorsubject

我的ViewModel中有一个BehaviourSubject,我想连接到可以执行操作的observable。所以,我想从数据库中获取用户列表。我有一个观察到这个操作。我在我的视图中订阅了BehaviourSubject,然后调用了getUsers,但没有结果。提前谢谢。

代码: 视图模型

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 个答案:

答案 0 :(得分:1)

这不会做任何事情,因为您没有订阅userListVM.getUsers() Observable。

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

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

这会将项目从observable传播到主题,但您需要手动处理取消订阅/