javascript - Does startWith() operator turns Observable into ReplaySubject(1)? -


if want subscribers @ least x, can use startwith( x ) existing observable:

streamfromlibrary.startwith( x ).subscribe( myhandler ); //i want myhandler() not wait until streamfromlibrary produce value //but called instantly x 

or still needs carried through intermediate replaysubject( 1 ) this?

let carrier = new rx.replaysubject( 1 ); carrier.next( x ); streamfromlibrary.subscribe( value => carrier.next( value ) ); carrier.subscribe( myhandler ); 

or if not, there other more elegant way carry values existing streams subscription @ least 1 initial/last value?

you don't need use replaysubject, should know these 2 aren't same:

  • the startwith() operator emits preset value every observer when subscribe.

  • the replaysubject(1) class re-emits 1 last item went through it. first value emits every observer might not same depending on pushed subject.

note, there's behaviorsubject takes initial value parameter , overrides every emission works replaysubject(1).

however there's 1 important distinction. when behaviorsubject receives complete notification never ever emits anything. on other hand replaysubject replays buffer every observer though has received complete notification.

also when using subjects might find interesting: subject , internal state


Comments

Popular posts from this blog

networking - Vagrant-provisioned VirtualBox VM is not reachable from Ubuntu host -

c# - ASP.NET Core - There is already an object named 'AspNetRoles' in the database -

ruby on rails - ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true -