创建一个可观察到的,发出到目前为止所有值的

时间:2019-11-25 16:06:23

标签: swift reactive-programming rx-swift

我有一个Observable<Foo>,它发出一些值,但从未完成。我们称之为source。我想创建一个Observable<[Foo]>,使其在source发出时发出source到目前为止发出的所有项目。

例如,如果source发出a然后b则c,则结果必须发出[a]然后[a,b]然后[a,b,c]。

这怎么实现?

任何帮助,不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以使用scan运算符,其中的累加器是一个数组,并且闭包在每个新事件上都会向其添加元素。

the documentation

但是,这很奇怪,如果您不注意的话,它很快就会变得非常缓慢和疯狂。