Оптимизация шаблона Pubsub с помощью Angular и RxJS - PullRequest
0 голосов
/ 08 декабря 2018

Я реализую шаблон публикации и подписки, используя службу Angular и RxJS Subject.Служба, если она запущена с обновлениями из бэкэнда, должна фильтровать эти обновления так, чтобы любой данный компонент получал только те обновления, на которые он подписан.Может быть проще, если я приведу свой рабочий пример.

Вот код службы:

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, который будет выполнять эту работу, или, возможно, веб-работник?

...