RxSwift 入门
2018-10-08 16:22 by l4y, ... 阅读, ... 评论, 收藏, 编辑ReactiveX 是一个库,用于通过使用可观察序列来编写异步的、基于事件的程序。
它扩展了观察者模式以支持数据、事件序列,并添加了允许你以声明方式组合序列的操作符,同时抽象对低层线程、同步、线程安全等。
本文主要作为 RxSwift 的入门文章,对 RxSwift 中的一些基础内容、常用实践,做些介绍。
Observables aka Sequences
Basics
观察者模式(Observable(Element>)和正常序列(Sequence)的等价性对于理解 Rx 是相当重要的。
每个 Observable 序列知识一个序列。Observable 与 Swift 的 Sequence 相比,其主要优点是可以异步接收元素。这是 RxSwift 的核心。
-
Observable(Observable) 与Sequence等价 -
Observable.subscribe方法与Sequence.makeIterator方法等价 - Observer(callback)需要被传递到
Observable.subscribe方法来接受序列元素,而不是在返回的 iterator 上调用next()方法
Sequence 是一个简单、熟悉的概念,很容易可视化。
人是具有巨大视觉皮层的生物。当我们可以轻松地想想一个概念时,理解它就容易多了。
我们可以通过尝试模拟每个Rx操作符内的事件状态机到序列上的高级别操作来接触认知负担。
如果我们不使用 Rx 而是使用模型异步系统(model asynchronous systems),这可能意味着我们的代码会充满状态机和瞬态,这些正式我们需要模拟的,而不是抽象。
List 和 Sequence 可能是数学家和程序员首先学习的概念之一。
这是一个数字的序列:
--1--2--3--4--5--6--| // 正常结束