rxjs_1

HTML

<script src="https://unpkg.com/@reactivex/rxjs@5.0.0-rc.1/dist/global/Rx.js"></script>

Babel + JSX

var Observable = Rx.Observable;

function xhr(url, json) {
    return Observable.create(function (observer) {
        $.ajax({
            url: url,
            data: JSON.stringify(json),
            success: function (response) {
                observer.next([json.id, json]);
            },
            error: function (jqXHR, status, error) {
                observer.next([json.id]);
            },
            complete: function () {
                observer.complete();
            }
        });
    });
}

var ids = [1,2,3,4,5,6];
var ids$ = (id) => {
	return Observable.of(id);
};
var loadIds$ = (id) => {
	if(id == 4) return xhr('/echo/jsoneee/', {id: id});
	return xhr('/echo/json/', {id: id});
};

Observable.from(ids)
    .concatMap(id => loadIds$(id))
    .subscribe(result => console.log(result));