【发布时间】:2016-04-16 00:04:44
【问题描述】:
我试图一次发出数千个 http 请求,但我的互联网连接崩溃了 :)
这就是为什么我希望使用 RxJS Observables 实现一个函数,该函数将同时的异步请求限制为定义的最大数量。
例如,如果最大数量为 3,则请求的工作方式如下:
r-----R--->
r---R----->
r-------R->
----r---R->
------r--->
--------r->
--------r->
这是一个 JSBin 示例,其中所有请求都使用请求模拟函数一次发送 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')
);
谢谢!
【问题讨论】:
标签: javascript http asynchronous rxjs