JSFiddle - React, Tailwind, and code Playground

by mattpodwysocki

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/rxjs/2.2.7/rx.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/rxjs/2.2.7/rx.experimental.js"></script>

JavaScript

function getJSON(url) {
    return Rx.Observable.create(function (obs) {
        setTimeout(function () {
            obs.onNext(url);
            obs.onCompleted();
        }, Math.floor(Math.random() * 1000));
    });
}

var story = { chapters: ['one', 'two', 'three'] };

var observable = Rx.Observable.return(story)
    .flatMap(function (story) {
        return Rx.Observable.for(story.chapters, getJSON);
    });

var subscription = observable.subscribe(
    function (chapter) {
        console.log(chapter);
    },
    function (err) {
        addTextToPage("Argh, broken: " + err.message);
    },
    function () {
        console.log("All done");
    });