RxJS is super when dealing with the dynamic value.
Let's see an example which not using RxJS:
var a = 4;
var b = a * 10; console.log(b); // a = 5;
console.log(b); //
So you change a, it won't affect b's value because b is already defined....
So if you want b get sideeffect, you need to declear it again:
var a = 4;
var b = a * 10; console.log(b); // a = 5;
b = a * 12;
console.log(b); //
And also, many a time, it may happened that you found the variable has been mutated, but you have no idea where and how.
So using RxJS:
var streamA = Rx.Observable.interval(400).take(5);
var streamB = streamA.map( (num) => {
return num * 10;
}) streamB.subscribe(b => console.log(b));
SO now, streamA arrivals at every 400ms, we can take 4 of those. then we map to StreamB.
Then in the console, you will see the value will change according to the value of stream A.