JSFiddle - React, Tailwind, and code Playground

by Huy Le

HTML

<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.umd.js"></script>

JavaScript

console.clear();

//const interval = Rx.Observable.interval(1000)
//	.take(3)
//	.reduce((a,c) => a+c, 0)
//  .subscribe(console.log);

const intervalOne = Rx.Observable.interval(100);
const intervalTwo = Rx.Observable.interval(500);
const timer = Rx.Observable.interval(3000);

intervalOne
	.takeUntil(timer)
  .reduce((a,c) => a+c, 0)
  .subscribe(console.log);

intervalTwo
	.takeUntil(timer)
  .reduce((a,c) => a+c, 0)
  .subscribe(console.log);

//intervalOne
//	.merge(intervalTwo)
//  .takeUntil(Rx.Observable.interval(3000))
//  .reduce((a,c) => a+c, 0)
//  .subscribe(console.log);

intervalOne
	.takeUntil(Rx.Observable.interval(3000))
  .reduce((a,c) => a+c, 0)
  .merge(intervalTwo
  				.takeUntil(Rx.Observable.interval(3000))
          .reduce((a,c) => a+c, 0))
  .reduce((a,c) => a*c, 1)
  .subscribe(console.log);