JSFiddle - React, Tailwind, and code Playground

by Andre Staltz

HTML

<pre id="output"></pre>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/rxjs/2.3.9/rx.all.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/rxjs-jquery/1.1.6/rx.jquery.js"></script>

JavaScript

function out() {
    var args = Array.prototype.slice.call(arguments, 0);
    document.getElementById('output').innerHTML += args.join(" ") + "\n";
}

function bar(param){
  return function(i){
     return Rx.Observable.timer(param)
         .map(function(){return i;});
  };
}

(function() {
    var param = [100, 200, 300, 400, 500, 600, 700, 800, 900];
    var observableFoo = Rx.Observable.timer(300)
        .map(function(){return "x";});
    
    var i = 0;
    observableFoo.expand(function (x) { 
        return Rx.Observable.just(x).flatMap(bar(param[i++]));
    })
    .take(9)
    .subscribe(function (x) {
        out("next", x);
    }, function (x) {
        out("err", x);
    }, function () {
        out("completed");
    });


})();