代码之家  ›  专栏  ›  技术社区  ›  Sharp Steel Software

为什么在replay()之前调用publish()很重要

  •  4
  • Sharp Steel Software  · 技术社区  · 8 年前

    1 回复  |  直到 8 年前
        1
  •  8
  •   akarnokd    8 年前

    通常应用其中一种,但不能同时应用这两种,因为 publish().replay() 与平原没有实际区别 replay() replay().publish() 这只是一个食谱,让后来的消费者看不到整个序列。

    在所有教程中,他们都说在调用replay()之前调用publish()很重要。

    是这样吗?

    两个运算符都返回一个 ConnectableObservable connect 在这两种情况下,启动序列。在这两种情况下,您都应该在调用connect或use之前为消费者做好准备 autoConnect(n) 在之后开始序列 n 消费者。

    publish replay 后者缓存部分或全部项目,并将其重播给消费者,无论他们何时订阅。前者不保留任何项目,即使是最新的 BehaviorSubject ,并将该项目发送给在该确切时间订阅该项目的消费者。