JSFiddle - React, Tailwind, and code Playground
by mattpodwysocki
HTML
<script src="https://raw.github.com/Reactive-Extensions/RxJS/master/rx.js"></script>
<script src="https://raw.github.com/Reactive-Extensions/RxJS/master/rx.binding.js"></script>
<pre>
Original:
var subject1 = new Rx.BehaviorSubject('FOO').distinctUntilChanged();
var subject2 = new Rx.BehaviorSubject('BAR').distinctUntilChanged();
var replay = Rx.Observable.combineLatest([ subject1, subject2 ],
function(value1, value2) {
console.log('FUNCTION FIRED');
return value1 + value2;
}).distinctUntilChanged()
.replay(function (x) { return x; }, 1)
replay.subscribe(function(value) {
console.log("PRINT 1 " +value);
});
replay.subscribe(function(value) {
console.log("PRINT 2 " +value);
});
FUNCTION FIRED
FUNCTION FIRED
PRINT 1 FOOBAR
PRINT 2 FOOBAR
</pre>
JavaScript
var subject1 = new Rx.BehaviorSubject('FOO');
var subject2 = new Rx.BehaviorSubject('BAR');
var replay = Rx.Observable.combineLatest([ subject1, subject2 ],
function(value1, value2) {
console.log('FUNCTION FIRED');
return value1 + value2;
}).publish().refCount();
replay.subscribe(function(value) {
console.log("PRINT 1 " +value);
});
replay.subscribe(function(value) {
console.log("PRINT 2 " +value);
});
subject2.onNext('QUUX');
subject1.onNext('BAZ');