我有一个带有特定类型A的项目的Observable。对于observable推送的每个项目,我想从存储库/数据存储区中查找类型B的相关对象,并将其作为单个返回。
这样做的正确方法是什么?
我已经尝试使用blockingGet()方法来实现它并且它可以工作,但我不知道这是否是正确/正确的方法。
public static void main(final String[] args) throws Exception {
List<A> items = Arrays.asList(new A(), new A(), new A());
Observable.fromIterable(items)
.map(a -> {
//This could be coming from a repo/datastore/something else
B b = getRelevantB(a).blockingGet();
//do stuff with a & b;
a.doStuff(b);
return a;
})
.subscribe();
}
//not actual implementation but just to sketch a situation
public static Single<B> getRelevantB(A a) {
return Single.just(new B());
}
public static class A {
public void doStuff(B b) {
//stub
}
}
public static class B {
}