2017-02-17 59 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); 

這會傳播從可觀察的項目的主題,但你將需要處理退訂手動/