我正在使用 Angular 服务和 RxJS 主题实现发布和订阅模式。该服务如果使用来自后端的更新进行火化,并且必须过滤这些更新,以便任何给定的组件只能获得他们注册的更新。如果我给出我的工作示例可能会更容易。
这是服务代码:
public getUpdates(updatesIWant: UPDATE[]): Observable<UPDATE[]> {
return this.updateSubject.pipe(
map(updates => updates.filter(update => updatesIWant.indexOf(update) != -1)));
}
这是组件代码:
this.updateService.getUpdates(this.updatesIWant).subscribe(updates => {
this.processUpdates(updates);
}
这可行,但是当每秒接收数千个更新时,它变得低效。如何优化这种模式?有什么方法可以合并一个自定义的 rxjs 操作符来完成这项工作,或者可能是一个网络工作者?