indexed-subject.class.ts 396 B

123456789101112131415161718
  1. import { PartialObserver, ReplaySubject } from 'rxjs';
  2. export class IndexedReplaySubject<K, T> {
  3. private index: Map<K, ReplaySubject<T>> = new Map();
  4. get(key: K): ReplaySubject<T> {
  5. let sub = this.index.get(key);
  6. if (!sub) {
  7. sub = new ReplaySubject(1);
  8. this.index.set(key, sub);
  9. }
  10. return sub;
  11. }
  12. next(key: K, value: T) {
  13. this.get(key).next(value);
  14. }
  15. }