什么是主题卢卡?为什么今天你想谈论主题?是不是发布有误?或者你只是喝醉了?
不,伙计们,别担心,这是今天的主题 😃
我认为在 RxJS 世界的这次长途旅行以及 Observables、Observers、Subscriptions 和一些我什至不记得的 Operators 之后,是时候了向您展示 Subjects,一种强大的 Observable 类型,但不仅如此。
让我们从定义开始:
一个 Subject 就像一个 Observable,但可以多播给许多观察者。Subjects 就像 EventEmitters:它们维护着许多听众的注册表。
好吧,我是在开玩笑 😃
但是让我们继续官方文档中的两个说明。
每个 Subject 都是一个 Observable 给定一个 Subject,你可以订阅它,提供一个 Observer,它将开始正常接收值。从观察者的角度来看,它无法判断 Observable 的执行是来自普通的单播 Observable 还是来自 Subject。
每个 Subject 都是一个 Observer, 它是一个具有方法 next(v)、error(e) 和 complete() 的对象。要向 Subject 提供一个新值,只需调用 next(theValue),它将被多播到注册监听 Subject 的观察者。
好的,但这意味着什么?
这意味着您可以创建一个 Subject,用不定式观察者订阅它,以出色的性能多播值,使用一个称为 的简单方法发出新值,使用一个称为 的方法发出错误并使用一个称为 的简单方法完成您next的error主题complete。
锦上添花的是,所有这些事情都可以用干净的