RxSwift 入门
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--| // 正常结束