RxJS Playground
A blank canvas to play / experiment with RxJS: https://github.com/Reactive-Extensions/RxJS
HTML
<script src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
JavaScript
const { interval, combineLatest, Subject } = rxjs;
const { map, first, bufferCount, mergeMap } = rxjs.operators;
function simulateHttp(url) {
return interval(1000).pipe(map(() => `${url}Rsp`), first());
}
const requests = new Subject();
const bufferedObs = requests.pipe(bufferCount(2));
const finalObs = bufferedObs.pipe(mergeMap((urls) => {
return combineLatest(urls.map(url => simulateHttp(url)));
}));
console.clear();
finalObs.subscribe(responses => {
console.log('Responses Arrived: [' + responses.join(', ') + ']');
});
requests.next('url1');
requests.next('url2');
requests.next('url3');
requests.next('url4');