还有一种 Subject 叫 ReplaySubject .. 它可以把添加到 Controller 或者叫 Subject 上的数据,全部交给监听器 .. 创建一个 ReplaySubject ...
运行一下 hot restart ..
你会发现,listen 1 还有 listen 2 这两个监听器都是在添加了数据之后创建的 .. 但是它们都得到了全部的添加到 subject 上的数据 ..
下面再添加一个数据 ... 复制一份 .. 数据是字符串 .. hi ..
hot restart ...
两个监听器收到了所有的数据 .. hello .. hola .. 还有 hi ..
创建这个 ReplaySubject 的时候, 我们可以添加一个 maxSize 参数 .. 设置一下最大接收的数据数量 .. 先把它设置成 2 ..
然后再执行一下 hot restart ..
这次这两个监听器都收到了最后两个数据 .. hola .. 还有 hi ... 没收到第一个 hello .. 因为我们设置了 ReplaySubject 的 maxSize ,限制了一下最大接收的数据个数 ..