管道RxJS可观察到现有主题

时间:2018-02-20 08:24:13

标签: javascript rxjs rxjs5

现有主题正在使用中:

const fooSubject = new BehaviorSubject(null);

还有另一个可观察者(本例中的另一个主题):

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

barSubject.next('bar');

代码有效,但看起来很笨拙。

是否有更好的方法来管道(广义上,不一定使用pipe运算符)barSubject可观察到fooSubject?它看起来像是一个可以由库本身处理的操作。

1 个答案:

答案 0 :(得分:18)

由于Subject已经是方法next()error()complete()的观察者,您可以将其订阅到任何Observable:

const fooSubject = new BehaviorSubject(null);

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

barSubject.next('bar');