使用Rxjs5(Beta)来限制http请求

问题描述:

我使用的是RxJS5(https://github.com/ReactiveX/RxJS),我试图访问Riot API,每10分钟有500个请求,每10秒有10个请求。使用Rxjs5(Beta)来限制http请求

我建立了一个请求对象流,我有一个用户准备好接收它们并实际请求它们,但是我在RxJS上有点新,并且不确定我应该使用哪个运算符来限制请求。

如果你要平衡你的要求,你可以使用示例: const newRequests = requestStream.sample(Observable.timer(75)); //10*60*60/500 = 72 --> 75 to be sure 样品将从观察到,发出元素时给定的观察到发射

不知道这是否是最好的方式,但我最终使用间隔观察者压缩请求对象流,因此它只会在间隔滴答时才会传输事件。 再次,不知道这是否是做到这一点的最好办法,但它的工作原理,这里是什么样子:

raw_stream = Rx.Observable.fromEvent EventEmitter, 'event' 
interval = Rx.Observable.interval(1000) 
timed_events = Rx.Observable.zip interval, raw_stream 

,如果你有更好的方法请随时回答。