multicast

RxJS 5 multicast

by Brian Troncone

HTML

<script src="https://npmcdn.com/@reactivex/rxjs@5.0.0-beta.8/dist/global/Rx.umd.js"></script>

JavaScript

const source = Rx.Observable.interval(2000).take(5);

const example = source
  //since we are multicasting below, side effects will be executed once
  .do(() => console.log('Side Effect #1'))
  .mapTo('Result!')

//subscribe subject to source upon connect()
const multi = example.multicast(() => new Rx.Subject());
/*
  subscribers will share source
  output:
  "Side Effect #1"
  "Result!"
  "Result!"
  ...
*/
const subscriberOne = multi.subscribe(val => console.log(val));
const subscriberTwo = multi.subscribe(val => console.log(val));
//subscribe subject to source
multi.connect();