Concat Observable 到 BehaviorSubject
Concat Observables to BehaviourSubject
我的 ViewModel 中有一个 BehaviourSubject,我想将它连接到执行操作的可观察对象。所以,我想从数据库中获取用户列表。我有一个具有此操作的可观察对象。我在我的视图中订阅了 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();
这不会执行任何操作,因为您没有订阅 userListVM.getUsers()
Observable。
您的代码不准确,因为您的 getState
参数为 0 和 1。相反,也许你应该考虑这样的事情:
userListVM.getUsers().subscribe(stateSubject::onNext);
这会将项目从可观察对象传播到主题,但您需要手动处理取消订阅/
我的 ViewModel 中有一个 BehaviourSubject,我想将它连接到执行操作的可观察对象。所以,我想从数据库中获取用户列表。我有一个具有此操作的可观察对象。我在我的视图中订阅了 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();
这不会执行任何操作,因为您没有订阅 userListVM.getUsers()
Observable。
您的代码不准确,因为您的 getState
参数为 0 和 1。相反,也许你应该考虑这样的事情:
userListVM.getUsers().subscribe(stateSubject::onNext);
这会将项目从可观察对象传播到主题,但您需要手动处理取消订阅/