Rx java RxJava-映射一个可观察对象并不是返回所有的排放
我有一个对象数组(36个对象),我正在从中创建一个可观察对象。然后我试着把它映射到另一种类型。。。然而,只有一种排放发生。 有人能帮我吗Rx java RxJava-映射一个可观察对象并不是返回所有的排放,rx-java,Rx Java,我有一个对象数组(36个对象),我正在从中创建一个可观察对象。然后我试着把它映射到另一种类型。。。然而,只有一种排放发生。 有人能帮我吗 TypeA[] array = new TypeA[]; // filling array return Observable.from(array) .concatMap(new Func1<TypeA, Observable<? extends TypeB>
TypeA[] array = new TypeA[];
// filling array
return Observable.from(array)
.concatMap(new Func1<TypeA, Observable<? extends TypeB>>() {
@Override
public Observable<? extends TypeB> call(TypeA typeA) {
return Observable.create(new Observable.OnSubscribe<TypeB>() {
@Override
public void call(Subscriber<? super TypeB> subscriber) {
Log.d("Here");
subscriber.onNext(new TypeB());
}
});
}
});
TypeA[]数组=新的TypeA[];
//填充阵列
返回可观察的。来自(数组)
CopaTMAP(new Frase),因为您使用的是CuttMult,当内部流终止时,操作员将只考虑第二个数组元素。
在您的情况下,它永远不会终止,因为您在onNext
之后不调用subscriber.onComplete();
请注意,根据代码与此示例的接近程度,您最好编写:
Observable.from(array).map(ta -> new TypeB());
或者(如果确实需要concatMap):
java中不能有<代码>返回<代码>方法,因为它是关键字,我们称它为<代码>只是< /COD>。尽可能避免调用<代码>可观察。创建< /COD>因为必须考虑背压要求。使用可观察的(从数组)。CuttMaP(Type ->可观察。只是(new Type())。doOnSubscribe(())-log(d)(“这里”));
Observable.from(array).concatMap(ta -> Observable.just(new TypeB()));