如何在 RxJs 5 中将 Subject 转换为 Observable [英] How to transform a Subject into an Observable in RxJs 5

查看:26
本文介绍了如何在 RxJs 5 中将 Subject 转换为 Observable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们如何在 RxJs 5 中将 Subject 转换为 Observable?此功能非常有用,例如,当我们想要公开订阅的主题但不想放弃对其调用 next() 的控制权,并且希望将新值的发布保密.

How can we transform a Subject into an Observable in RxJs 5 ? This functionality is useful for example when we want to expose the Subject for subscription but don't want to yield control of calling next() on it, and prefer to keep the issuing of new values private.

文档(参见此处) 提到这样的事情:

The docs (see here) mention something like this:

var subject = new Rx.Subject();

var obs = subject.asObservable();

但在 RxJs 5 中,这目前不起作用(alpha 8),我们收到以下错误:

But in RxJs 5 this currently does not work (alpha 8), we get the following error:

"TypeError: subject.asObservable is not a function

推荐答案

RxJS 5 是一个重写(目前处于测试阶段)并且有很多 重命名/删除方法,以及其他更改.删除的其中之一是 asObservable.

RxJS 5 is a rewrite (currently in beta) and has lots of renamed/removed methods, among other changes. One of the removed ones is asObservable.

您可以通过使用私有主题的订阅功能创建一个 observable 来获得相同的功能:

You can get the same functionality by creating an observable with the private subject's subscribe function:

const subj = new rx.Subject();
const exposed = new rx.Observable(fn => subj.subscribe(fn));

这篇关于如何在 RxJs 5 中将 Subject 转换为 Observable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆