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 定时器操作符

略.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本篇文章介主要绍RxJava中操作符是以函数作为基本单位,与响应式编程作为结合使用的,对什么是操作、操作符都有哪些...
    嘎啦果安卓兽阅读 7,928评论 0 10
  • 作者: maplejaw本篇只解析标准包中的操作符。对于扩展包,由于使用率较低,如有需求,请读者自行查阅文档。 创...
    maplejaw_阅读 46,078评论 8 93
  • 创建操作 用于创建Observable的操作符Create通过调用观察者的方法从头创建一个ObservableEm...
    rkua阅读 5,854评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,137评论 19 139
  • 参考:给 Android 开发者的 RxJava 详解-扔物线深入浅出RxJava 基础 "a library f...
    Vincen1024阅读 3,520评论 0 1

友情链接更多精彩内容