【发布时间】:2018-10-17 05:32:09
【问题描述】:
我正在开发一个 Angular 应用程序。而且我使用其中一个社交网络提供的 API,它的限制是每秒 5 次 API 调用。
最直接的解决方案是编写自定义逻辑来计算请求并将它们排队到限制。因此,如果我在一秒内向 API 发送第 6 个请求,它将在第一个请求发送后的第二个发送。
但如果可以使用 RxJs,我想找到一些优雅的解决方案。
例如,我可以为 Observable 设置 debounseTime,如下例所示。但我实际得到的是,我无法在行中以小于 200 毫秒的间隔发出几个请求。
this.searchControl.valueChanges
.debounceTime(200) // 200ms ~ 5 requests per second
.switchMap(search => this.api.searchPeople(search))
RxJ 是否有任何技术可以限制每个间隔的发射次数并将它们排队以防请求发送过于频繁?
【问题讨论】:
标签: angular typescript rxjs