Observable from Scratch

by Suman Kumar

HTML

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

JavaScript

var i = 0;

const one$ = new Rx.Observable(observer => {
	console.log('Hooking an observer: '+(++i));
  
  observer.next(123);
  observer.next("Hello World");
  
  observer.error("Error is coming !");
  
  setTimeout(() => {
  	observer.next({id: 1, value: 100});
  }, 3000);
  
  setTimeout(() => {
  	observer.next("Again Hello World");
  }, 8000);
});

one$
.catch(err => Rx.Observable.of(err))
.subscribe(
	v => console.log(v),
  err => console.log(err)
);


one$
.catch(err => Rx.Observable.of(err))
.subscribe(
	v => console.log("Am listener 2: ", v),
  err => console.log(err)
);

setTimeout(() => {
	one$
  .catch(err => Rx.Observable.of(err))
  .subscribe(
		v => console.log("Am listener 3: ", v),
  	err => console.log(err)
  );
},5000);