【发布时间】:2016-12-21 22:37:29
【问题描述】:
我试图从一个在内部使用 Rx.Subject 的函数返回一个 observable。当然,与任何好的 API 一样,实现细节应该完全从消费者那里抽象出来。但是,使用 Subject.asObservable() 似乎任何消费者都可以向所有观察者发出新值。
例子:
const subject = new Rx.Subject();
const observable = subject.asObservable();
observable.source === subject; // true
observable.forEach(value => console.log(value));
observable.source.next('Hello');
// Causes the forEach above to print "Hello"
所以我的问题是,是否有一种 内置 方法可以向消费者公开 Observable 而不让他们访问原始主题?如果不是,这显然是 RxJs 的糟糕设计。
注意:这是针对 RxJS v5
【问题讨论】:
标签: javascript rxjs observable rxjs5 subject-observer