JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/3.1.2/rx.all.compat.js"></script>
<div id="console"></div>

JavaScript

var isFizzBuzz = function(x) { return (x % 15) == 0; };
var isFizz = function(x) { return (x % 3) == 0 && !isFizzBuzz(x); };
var isBuzz = function(x) { return (x % 5) == 0 && !isFizzBuzz(x); };

var subject = new Rx.Subject();
var fizzStream = subject.filter(isFizz).map(function(_) { return 'Fizz'; });
var buzzStream = subject.filter(isBuzz).map(function(_) { return 'Buzz'; });
var fizzBuzzStream = subject.filter(isFizzBuzz).map(function(_) { return 'FizzBuzz'; });
var otherStream = subject.filter(function(x) {
    return !isFizz(x) && !isBuzz(x) && !isFizzBuzz(x);
}).map(function(x) {
    return x;
});

var mergedStream = Rx.Observable.merge(fizzStream, buzzStream, fizzBuzzStream, otherStream);
var output = mergedStream.subscribe(function(x) {
    $('<span>' + x + '</span><br />').appendTo($('#console'));
});

Rx.Observable.range(1, 100).subscribe(subject);