RxJS .zip and .switchLatest
HTML
<script src="https://rawgit.com/Reactive-Extensions/RxJS/master/dist/rx.all.js"></script>
CSS
textarea {
font-family:"Courier New", monospace;
font-size: 12px;
width: 100%;
height: 120px;
}
JavaScript
var p1 = function () { return Promise.resolve(1);}
var p2 = function (x) { return Promise.resolve(x+1); };
var p3 = function (x) {
var isEven = function(x) {return x % 2 === 0;};
return Promise.resolve(isEven(x));
};
var chainedPromises$ =
Rx.Observable.just()
.flatMap(p1)
.flatMap(p2)
.flatMap(p3);
chainedPromises$.subscribe(function(x){console.log(x)})