I'm trying to make thousands of http requests at once and my internet connection collapse :)
That's why I was looking to implement a function using RxJS Observables that limits simultaneous asynchronous requests to a defined maximum number.
For example, if the max number would be 3, the requests would work like this:
r-----R--->
r---R----->
r-------R->
----r---R->
------r--->
--------r->
--------r->
Here is a JSBin example where all the request are sent at once with a request mocked function http://jsbin.com/vemewu/4/edit?js,console
function makeTestRequest() {
return new Promise((resolve, reject) => {
setTimeout(resolve, 1000);
});
}
let requests = _.range(0, 100).map(() => makeTestRequest);
var requests$ = Rx.Observable.fromArray(requests);
requests$.subscribe(
() => console.log('request done'),
() => console.log('error'),
() => console.log('completed')
);
Thanks!