我真的很新,但我想做的是
两个并行调用都是对象,然后我需要使用两者的属性创建一个新对象
这是我需要的伪示例
OperatorINeed(service.callOne(), service.callTwo())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.concatMap(new BiFunction<ObjectA, ObjectB, ObjectC>() {
public ObjectC apply(ObjectA objectA, ObjectB objectB) {
// do things
return objectC;
}
})
onErrorResumeNext(...)
但我找不到这件事的具体例子
答案 0 :(得分:0)
使用zip()
运算符,它将收集将在parraell中运行的两个服务Observable
的排放,并在那里提供BiFunction
以将两个对象属性映射到新的单个对象,之后您可以concatMap()
使用objectC
:
Observable.zip(service.callOne(), service.callTwo(),
new BiFunction<ObjectA, ObjectB, ObjectC>() {
@Override
public ObjectC apply(ObjectA objectA, ObjectB objectB) throws Exception {
// do things
return objectC;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.concatMap(objectC -> { //create an Observable using objectC})
.onErrorResumeNext(...)