0
之一發射我有可觀測的Observable<Integer> observable1
和PublishSubject<String> observable2
(請參閱示例)。RxJava:組合觀察對象忽略從
我的目的:
- 觀測量並行執行;
- 在一個觀察者中處理錯誤;
- 不在意
observable1
會在onNext上發出什麼,只對處理onError的錯誤很重要,並保證observable被執行。
我需要這樣的東西
observable2.mergeWith(observable1.map(i -> Integer.toString(i)))
.subscribe(mySubsriber);
但是,如果沒有從observable1
發射。
有很好的方法來做到這一點?
樣品
long time1 = 7000;
long time2 = 1000;
Observable<Integer> observable1 = Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> subscriber) {
Handler handler = new Handler();
handler.postDelayed(() -> {
subscriber.onNext(1);
subscriber.onNext(2);
subscriber.onNext(3);
subscriber.onCompleted();
}, time1);
}
}).doOnNext(new Action1<Integer>() {
@Override
public void call(Integer data) {
cacheData(data);
}
});
PublishSubject<String> observable2 = PublishSubject.create();
Handler handler = new Handler();
handler.postDelayed(() -> {
observable2.onNext("A");
observable2.onNext("B");
observable2.onNext("C");
observable2.onCompleted();
}, time2);
Observer<String> observer = new Observer<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
//need handling errors from observable1 and observable2
}
@Override
public void onNext(String s) {
//need emitting only from observable2
}
};
謝謝,我根本注意不到大象 – Alexandr