RxPY - 使用主题
-
简述
一个主题是一个可观察的序列,以及一个可以多播的观察者,即与许多订阅的观察者交谈。我们将讨论以下主题 -- 创建主题
- 订阅主题
- 将数据传递给主题
- 行为主体
- 重播主题
- 异步主题
-
创建主题
要使用主题,我们需要导入主题,如下所示 -您可以按如下方式创建主题对象 -该对象是具有三种方法的观察者 -- on_next(value)
- on_error(error)
- on_completed()
-
订阅主题
您可以在主题上创建多个订阅,如下所示 - -
将数据传递给主题
您可以将数据传递给使用 on_next(value) 方法创建的主题,如下所示 -数据将传递给所有订阅,添加在主题上。这是该主题的一个工作示例。例子
subject_test 对象是通过调用 Subject() 创建的。subject_test 对象引用了 on_next(value)、on_error(error) 和 on_completed() 方法。上述示例的输出如下所示 -输出
我们可以使用 on_completed() 方法来停止主题执行,如下所示。例子
一旦我们调用了完成,后面调用的下一个方法就不会被调用。输出
现在让我们看看如何调用 on_error(error) 方法。例子
输出
-
行为主体
BehaviorSubject 将在调用时为您提供最新值。您可以创建行为主题,如下所示 -这是一个使用行为主题的工作示例例子
输出
-
重播主题
重播主体类似于行为主体,其中,它可以缓冲值并将其重播给新订阅者。这是一个重播主题的工作示例。例子
重播主题上使用的缓冲区值为 2。因此,最后两个值将被缓冲并用于调用的新订阅者。输出
-
异步主题
在 AsyncSubject 的情况下,最后调用的值被传递给订阅者,并且只有在调用 complete() 方法后才会完成。例子
输出