如何在RxJs中将主题转换为Observable 5

时间:2016-01-29 21:53:20

标签: rxjs rxjs5

如何在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

2 个答案:

答案 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));