如何在RxJs 5中将主题转换为Observable?此功能非常有用,例如,当我们希望公开Subject以进行订阅但又不希望控制对其调用next()
时,并且更愿意保持新值的发布。
文档(参见here)提到了类似的内容:
var subject = new Rx.Subject();
var obs = subject.asObservable();
但是在RxJs 5中这当前不起作用(alpha 8),我们得到以下错误:
"TypeError: subject.asObservable is not a function
答案 0 :(得分:13)
仅供参考:Subject.prototype.asObservable()
将在下一个版本5.0.0-beta.2
中。
此时,您只需拨打mySubject.asObservable()
。
答案 1 :(得分:2)
RxJS 5是一个重写(目前处于测试阶段)并且有很多renamed/removed methods,以及其他更改。其中一个被移除的是asObservable
。
您可以通过使用私有主题的订阅功能创建一个observable来获得相同的功能:
const subj = new rx.Subject();
const exposed = new rx.Observable(fn => subj.subscribe(fn));