【问题标题】:Concat Observables to BehaviourSubjectConcat Observable 到 BehaviorSubject
【发布时间】:2017-02-17 19:25:16
【问题描述】:

我的 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();

【问题讨论】:

    标签: android rx-java behaviorsubject


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多