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');