web-dev-qa-db-fra.com

Pipe RxJS observable au sujet existant

Il existe un sujet en cours d'utilisation:

const fooSubject = new BehaviorSubject(null);

Et il y a un autre observable (un autre sujet dans cet exemple):

const barSubject = new Subject();
barSubject.subscribe(
  value => fooSubject.next(),
  err => fooSubject.error(err),
  () => fooSubject.complete()
);

barSubject.next('bar');

Le code fonctionne mais semble maladroit.

Existe-t-il une meilleure façon de diriger (au sens large, n'utilisant pas nécessairement l'opérateur pipe) barSubject observable vers fooSubject? Cela ressemble à une opération qui pourrait être gérée par la bibliothèque elle-même.

17
Estus Flask

Puisque Subject est déjà un observateur avec les méthodes next(), error() et complete() vous pouvez simplement l'abonner à n'importe quel Observable:

const fooSubject = new BehaviorSubject(null);

const barSubject = new Subject();
barSubject.subscribe(fooSubject);

barSubject.next('bar');
23
martin