mtyson
mtyson

Reputation: 8550

RxJava: Connect observers?

Is there a RxJava way to connect to observers?

By that I mean, instead of:

Observer<Object> observer1 = new Observer<Object>() { // ... }
Observer<Object> observer2 = new Observer<Object>() {
    @Override
    public void onNext(Object event) {
        observer1.onNext(event);
    }
    // ...
    };

So that the observers are chained together (when the originating onNext() is called, the secondary onNext() is called).

Upvotes: 1

Views: 86

Answers (2)

paul
paul

Reputation: 13471

If you want to run your second observer in your first observer onNext it wont be more simple just use flatMap?.

Or maybe I dont understand what you want to do.

Observable.just(object) 
          .flatMap(Observable.just(object2))--> Do whatever you need
          .subscribe(); --> First observer

If you want to see some practicle examples about how to use RxJava look here https://github.com/politrons/reactive

Upvotes: 1

codependent
codependent

Reputation: 24452

I would recommend you use a Processor, which is both an Observable and an Observer.

In your example:

//Your observable
Observable observable = Observable.just(...);

Observer<Object> observer1 = new Observer<Object>() { // ... }

PublishSubject<Object> observer2 = PublishSubject.create();
// observer1 will receive all onNext and onCompleted events
observer2.subscribe(observer1);

//observer2 will get items from observable and propagate them to observer1
observable.subscribe(observer2);

Upvotes: 1

Related Questions