ReactiveSwift 缓冲管道
ReactiveSwift buffered pipe
怎么可以buffered replay subject be implemented in ReactiveSwift?
我看过 replayLazily(upTo:)
operator of SignalProducer
, and also the pipe()
function of the Signal
type, however I can't see a straightforward way of creating something equivalent to Rx ReplaySubject
。
这也提出了以下问题:
ReactiveSwift 使用 Signal.pipe()
实现 Subject
,但是您不能像为 Rx ReplaySubject 那样为管道指定缓冲区。有什么解决方法吗?
replayLazily(upTo:)
operator is missing from the Signal
type. I guess this is not so bad since you can create a SignalProducer
from a Signal
。但是为什么Signal
没有相同的运算符呢?
有没有人遇到过这个问题?还是我遗漏了什么?
如有任何帮助,我们将不胜感激。
Signal
docs 说:
An observer of a Signal will see the exact same sequence of events as all other observers. In other words, events will be sent to all observers at the same time.
这与生产者形成对比,生产者每次启动时都会创建一个新信号,这意味着每个观察者都可能看到不同的事件。
缓冲方案要求每个观察者在订阅时接收缓冲区中的当前值列表,而其他观察者不应在每次添加新观察者时都收到这些值。因此,每个观察者都需要自己的信号,这意味着缓冲机制必须实现为 生产者,它可以为每个订阅者创建一个新信号。
添加 replayLazily
时有一个 good discussion from 2016,希望能阐明运算符背后的想法以及为什么它绝对不能成为 Signal
的一部分。
怎么可以buffered replay subject be implemented in ReactiveSwift?
我看过 replayLazily(upTo:)
operator of SignalProducer
, and also the pipe()
function of the Signal
type, however I can't see a straightforward way of creating something equivalent to Rx ReplaySubject
。
这也提出了以下问题:
ReactiveSwift 使用
Signal.pipe()
实现Subject
,但是您不能像为 Rx ReplaySubject 那样为管道指定缓冲区。有什么解决方法吗?replayLazily(upTo:)
operator is missing from theSignal
type. I guess this is not so bad since you can create aSignalProducer
from aSignal
。但是为什么Signal
没有相同的运算符呢?
有没有人遇到过这个问题?还是我遗漏了什么?
如有任何帮助,我们将不胜感激。
Signal
docs 说:
An observer of a Signal will see the exact same sequence of events as all other observers. In other words, events will be sent to all observers at the same time.
这与生产者形成对比,生产者每次启动时都会创建一个新信号,这意味着每个观察者都可能看到不同的事件。
缓冲方案要求每个观察者在订阅时接收缓冲区中的当前值列表,而其他观察者不应在每次添加新观察者时都收到这些值。因此,每个观察者都需要自己的信号,这意味着缓冲机制必须实现为 生产者,它可以为每个订阅者创建一个新信号。
添加 replayLazily
时有一个 good discussion from 2016,希望能阐明运算符背后的想法以及为什么它绝对不能成为 Signal
的一部分。