2017-05-10 1 views
0

ich habe:sicher, dass alle Einzelteile durch einen heißen beobachtbaren emittiert verbraucht werden genau einmal

  1. Eine Quelle, die ein heißes beobachtbar ist, dass an einem gewissen Punkt emittiert ein Element und vervollständigt
  2. Mehrere Beobachter, dass halten abonnieren/abbestellen zu/von der Quelle (aber höchstens ein an der gleichen Zeit abonniert werden)

ich mag die Quelle zu einer beobachtbaren zu transformieren, dass das Element stellt sicher ist verbraucht genau einmal von einem Beobachter. Beobachter, die später abonnieren, sollten nur benachrichtigt werden, dass der Artikel verbraucht wurde (Abschluss-Event).

erwartetes Verhalten:

1) Emission von der Quelle vor einem Beobachter abonniert

--O-|------> (source) 

-----^-O-|-> (observer) 

2) Emission von der Quelle nach einem Beobachter abonniert

------O-|-> (source) 

--^---O-|-> (observer) 

3) Abonnement nach Artikel wurde verbraucht

-O-|-------> (source) 

-^-O-|-----> (observer1 - consumes the item) 

------^-|--> (observer2 - is notified that the item has been consumed) 

Was ist der einfachste und eleganteste Weg, um ein solches Verhalten zu erreichen?

Antwort

1

Verwenden Sie eine BehaviorSubject. Dies beschreibt sein Verhalten genau.

+0

Oh, es scheint, ich habe missverstanden, wie das BehaviorSubject funktioniert. Du hast recht, es löst das Problem perfekt! Vielen Dank! –

Verwandte Themen