Rxjs SubjectReplay Example

by jacobwsmith

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.4.0/Rx.min.js"></script>

JavaScript

console.clear();

// mimic service
const myDate = () => { return new Date().getTime()};
const database$ = Rx.Observable.of('hello from database: ' + myDate()).delay(1000);
const data$ = new Rx.ReplaySubject();

// component 1
data$.subscribe(res => console.log('component1: ',res));
database$.subscribe(res => {
  data$.next(res);
})

setTimeout(() => {
  // component 2
  data$.next('form update')
}, 2000);

setTimeout(() => {
  // component 2
  data$.subscribe(res => console.log('component2: ', res));
}, 3000);