2016-07-21 6 views
0

私のAngular 2アプリでは、私は他の角度成分よりもメッセージをブロードキャストするための通信サービスを持っています。Observerable .next()to Observer特定のObserverに

@Injectable() 
export class CommunicationService { 
    private _broadcast = new Subject<EventParam>(); 

    broadcast$ = this._broadcast.asObservable(); 

    public sendEvent(eventParameters: EventParam): void { 
     this._broadcast.next(eventParameters); 
    } 
} 

これはうまく動作しますが、時々私は私が私のメッセージを送信するためにどのコンポーネントを知っている:それは、特定の観察者にメッセージを送信するためにRxJsで可能ですか?

+0

「特定のサブスクライバ」を意味しますか? –

答えて

1

Observablesは、Observersから切り離されることを意味しています。そのため、実際に名前付きルックアップを行う方法はありません。つまり、filterを使用してオプションのフィルタ処理を実行できます。

//In a consumer of your service 
communicationService.broadcast$ 
    //Will allow through events based on an optional field 
    .filter(({name}) => !name || name === 'component1') 
    .subscribe(x => /**/); 
+0

オブザーバブルはオブザーバから切り離されることを意図しています。どういう意味ですか?説明していただけますか? –