rxjs5 - RxJS 5, converting an observable to a BehaviorSubject(?) -
i have parent observable that, once has subscriber, lookup , emit single value, complete.
i'd convert observable (or behavior subject or whatever works) following: once has @ least 1 subscriber, gets result parent observable (once). emits value of subscribers, , emits single value future subscribers, when subscribe. should continue behavior if subscriber count drops zero.
it seems should easy. here didn't work:
thevalue$: observable<boolean> = parent$ .take(1) .share()
other things didn't work: publishreplay()
, publish()
. worked better:
thevalue$ = new behaviorsubject<boolean>(false); parent$ .take(1) .subscribe( value => thevalue$.next(value));
there problem approach, though: parent$
subscribed before thevalue$
gets first subscriber.
is there better way handle this?
sharereplay
should want:
import 'rxjs/add/operator/sharereplay'; ... thevalue$: observable<boolean> = parent$.sharereplay(1);
sharereplay
added in rxjs version 5.4.0. returns reference counted observable subscribe source - parent$
- upon first subscription being made. , subscriptions made after source completes receive replayed notifications.
sharereplay
- , refcount
in general - explained in more detail in article wrote recently: rxjs: how use refcount.
Comments
Post a Comment