美文网首页
RxSwift -- 集合操作

RxSwift -- 集合操作

作者: yww | 来源:发表于2017-09-20 11:50 被阅读14次

很多时候, 需要将两个事件队列合并来处理, 例如, 你想在用户确实输入了用户名和密码后, 才启用登录按钮

merge

合并两个队列例如如下两个队列
--a1--a2-a3----a4--->
---b1-------b3------>
合并之后会变成
--a1-b1-a2-a3-b3-a4-->

let observableA = PublishSubject<String>()
let observableB = PublishSubject<String>()
Observable.merge(observableA, observableB).subscribe { (event) in
    self.print(event)
    }.disposed(by: disposeBag)
observableA.onNext("a1")
observableB.onNext("b1")
observableA.onNext("a2")
observableA.onNext("a3")
observableB.onNext("b2")
observableA.onNext("a4")

zip

zip 会将两个事件合并为一个事件, 事件的总数与最小的队列一致, 并且, 要两个都发生变化才会发送事件, 而且只要两组事件序列各自内部顺序是一致的, 不管两个序列之间元素顺序的先后, 那么最后 zip 的结果也是一致的,

zip
例如上图中, 上方队列只要顺序是1, 2, 3, 4, 5, 下方是 A, B, C, D 那么不管1 和 A 那个在前, 最终的输出都是1A 2B...
zip
你可以去这个网站http://reactivex.io/documentation/operators/zip.html 上去拖动一下那几个事件的顺序, 方便理解

combineLatest

相对于 zip 来说, combineLatest 方便理解许多, 只要双方都有至少一次事件就可以开始了, 每次取的都是每个序列最近发生的事件


combineLatest

相关文章

  • RxSwift -- 集合操作

    很多时候, 需要将两个事件队列合并来处理, 例如, 你想在用户确实输入了用户名和密码后, 才启用登录按钮 merg...

  • RxSwift基础讲解

    RxSwift:RxSwift是一个使用可观察序列和函数式操作符编写异步和基于事件的代码的库。RxSwift常用的...

  • Scala(八)-①-数据结构-集合操作-线程安全的集合-操作符

    ① 集合操作 Why 为什么需要集合操作?集合操作都包括哪些?Scala的集合操作主要为了适应大数据的发展,我们以...

  • RxSwift常见操作

    never never就是创建一个sequence,但是不发出任何事件信号。 empty empty就是创建一个空...

  • swift-集合Set

    集合特点: 无序的数据集 排重, 数据唯一 提供集合操作 快速查找 集合操作 集合操作 加上Inplace就会改变...

  • RxSwift-搞事情(一)

    一、初步了解 RxSwift的实现概括为4个流程,在RxSwift中,所有异步操作(事件)和数据流均被抽象为可观察...

  • RxSwift 中所有操作符的使用示例

    示例代码均来自 RxSwift 项目源码 目录 创建 ObservableType 和 Subscribe 操作一...

  • Python精简入门学习(十三)

    Python精简入门学习之集合 -set -创建集合 -添加操作 -清空操作 -差集操作 -交集操作 -并集操作 ...

  • Swift 集合类型之集合

    创建空集合 创建有元素的集合 单个集合的基本操作 遍历集合 console log 如下: 多个集合的操作 con...

  • php redis zset

    有序集合 zset zet 一般操作 zset 集合间操作

网友评论

      本文标题:RxSwift -- 集合操作

      本文链接:https://www.haomeiwen.com/subject/gqwnsxtx.html