2016-10-15 8 views
1

オブザーバーに接続するRxJavaの方法はありますか?私が意味することにより、RxJava:オブザーバーを接続しますか?

、代わりに:

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

オブザーバーが互いに連鎖されるように、(元のonNext()二次onNext(と呼ばれる)が呼ばれています)。

+1

したいのはなぜか? –

+0

@DaveMoten Hey Dave :)このシステムにはいくつかのレイヤがあり、イベントは最上部と各レイヤーで開始できます。レイヤのオブザーバにイベントを見せて、イベントを見せて、次のイベントにプッシュします層。 – mtyson

答えて

1

最初のオブザーバで次のオブザーバを実行する場合は、次のようにonNextを使用すると、より簡単にflatMap?を使用することはできません。

あなたが何をしたいのか分かりません。あなたがここを見てRxJava使用する方法についてのいくつかのpracticleの例を見たい場合は

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

https://github.com/politrons/reactive

1

私は、あなたが観察し、オブザーバーの両方でプロセッサを使用することをお勧めします。あなたの例では

//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); 
関連する問題