gpt4 book ai didi

java - 获取发出两种类型的 Observable

转载 作者:行者123 更新时间:2023-11-29 19:25:58 24 4
gpt4 key购买 nike

所以我目前有一个 Observable,它返回用户:

 public Observable<Account> getLoggedUserInfo() {


try {
return accountService.me(preferencesHelper.getToken()).concatMap(remoteAccount -> {
return localDatabase.addAccount(remoteAccount);
});

} catch (NullPointerException e) {

return Observable.empty();

}


}

我有一个 Observable,它根据 id 返回一所学校,如下所示:

  public Observable<School> getSchoolById(@NonNull final String id){

return schoolService.getSchool(id).concatMap(remoteSchool->localDatabase.addSchool(remoteSchool));

}

现在我想在我的 View 中代表学校,但为了做到这一点,我需要创建一个 Observable 它将给我开始时使用的帐户( Observable getLoggedUserInfo) 和之后发生的学校,所以我会以类似

Observable<Account, School>{
//Do something with the account and school

}

那么我如何获得这个 Observable,用我目前拥有的 observable,这是否可能? 我对 Rx 还是很陌生,让我感到困惑的最大部分是语法,在此先感谢!

最佳答案

使用元组或中间类。

public Observable<Tuple<<Account, School>> doSomething() {
return getLoggedUserInfo().zip(getSchoolById("id"), (f, s) -> new Tuple(x, y));
}

我建议你使用适当的元组,但它可以像这样简单:

public class Tuple<X, Y> { 
public final X x;
public final Y y;
public Tuple(X x, Y y) {
this.x = x;
this.y = y;
}
}

关于java - 获取发出两种类型的 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com