RxJS速成课程–主题和多播示例

0

我们还有一个主题需要讨论,’s RxJS主题。一个主题只是具有一些额外奖励功能的可观察对象。

RxJS速成课程–主题和多播示例
主题和组播示例

它具有通过充当其他数据源的代理向其订阅者发出新数据的能力。

在接下来的几个样本之后,这将更有意义。

RxJS中的主题

因此,在这里我们可以观察到’订阅时将其转换为主题。它发出的值就像正常可观察到的那样。但是,该主题的真正好处是可以调用它。

所以我们要做的是创建一个新主题,然后我们’将为其创建几个订阅。然后我们可以调用下一个具有以下值的主题:’您无法在正常的可观察范围内进行任何操作。然后我们’将在超时内设置另一个下一个呼叫。

因此,主题的主要好处是能够向订户广播新值,而不必依赖某些源数据。

RxJS中的多播

关于这个话题,我们’再来看最后一件事’s multicast. It’用于将值发送给多个订户。但是没有任何相关的副作用,因此我们创建一个数据源,它是DOM中发生的单击事件。

然后,我们使用do运算符打印一次。这是副作用的一个例子。想象一下,我们有一百个订户,它将为炸弹的每一个运行此代码。

因此,如果您有一百次点击和一百个订阅者,则此代码将运行10,000次。

好吧,我们实际上希望它仅在来自可观察源的100次点击上运行,我们可以通过在原始可观察对象上调用多播并使其返回新主题来做到这一点。

然后,我们可以为该主题添加几个订阅,然后最后我们需要在该主题上调用connect。当我们开始单击Dom时。我们’将会看到我们获得了发送给订户的值,尽管副作用只运行了一次。

如果有多个订阅者,如果您有一个副作用的单个数据源有多个订阅者,那么这可能会非常有益。

那’如果本系列文章对您有帮助,请参阅我的RxJS快速入门。

 

0