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');