RxSwift 11 与时间相关的操作符

时间, 或者说是时机, 实际上是异步编程中的根本问题. 而 Rx 要实现的也是对随时间变化的异步数据流进行有效组织管理. 故Rx在这个方面提供了若干的操作符便于编程. 下面就来看看.

1 概述

首先设置好示例工程, 然后开始在工程中进行相关操作.

2 缓存操作符

第一组操作符是 buffering 类型的操作符. 它可以实现重新发送已发送的数据(replay), 或者是在指定的时间去发射数据等. 总地来说, 他们可以决定在何时以何种方式去发射过去的和新的数据.

2.1 重现已发送的数据

有的时候希望在新的观察者到达的时候, 能够观察到之前的部分或全部的数据, 这样的功能可以通过两个操作符实现: replay 以及 replayAll.

首先来定义一些常量, 之后的编程需要使用这些值:

let elementsPerSecond = 1
let maxElements = 5
let replayedElents = 1
let replayDelay: TimeInterval = 3

其中 elementsPerSecond 的作用是控制每秒发射的数据数量.

先创建一个随时间变换而不停发射数据的 Observable, 然后在它最后使用 replay() 操作符, 结果就是创建出一个缓存了最近若干个数据的 Observable.

这个需要仔细去看, 当前没有 source code , 没法跟着他一起去搞...

2.2 不限制缓存数据个数

如果不想限制缓存的数据个数, 则可以使用 replayAll 操作符.

3 时间变换操作符

4 定时器操作符

略.

你可能感兴趣的:(RxSwift 11 与时间相关的操作符)