RxSwift操作符

  • Observable

just()
of()
from()
empty()
never()
error()
range()
repeatElement()
generate()
create()
deferred()
interval()
timer()

  • Event

  • subscribe

onNext
onError
onCompleted
doOnNext
doOnError
doOnCompleted

  • bind、bind(to:)bind(to:)

  • Dispose、Disposables、DisposeBag

dispose()
disposed(by:)

  • Observer

AnyObserver
Binder

  • Subjects

PublishSubject
BehaviorSubject
ReplaySubject
BehaviorRelay

  • 变换操作符

buffer
window
map
flatMap
flatMapLatest
flatMapFirst
concatMap
scan
groupBy

  • 过滤操作符

filter
distinctUntilChanged
single
elementAt
ignoreElements
take
takeLast
skip
Sample
debounce

  • 条件和布尔操作符

amb
takeWhile
takeUntil
skipWhile
skipUntil

  • 结合操作符

startWith
merge
zip
combineLatest
withLatestFrom
switchLatest

  • 算数&聚合操作符

toArray
reduce
concat

  • 连接操作符,调用connect()才开始发送事件

publish
replay
multicast
refCount
share(relay:)

  • 其他操作符

delay
delaySubscription
materialize
dematerialize
timeout
using

  • 错误处理操作符

catchErrorJustReturn
catchError
retry

  • 调试操作符

debug
RxSwift.Resources.total

  • 特征序列

Single
Completable
Maybe
Driver
ControlProperty
ControlEvent

  • 调度器

CurrentThreadScheduler:表示当前线程 Scheduler。(默认使用这个)
MainScheduler:表示主线程。如果我们需要执行一些和 UI 相关的任务,就需要切换到该 Scheduler 运行
SerialDispatchQueueScheduler:封装了 GCD 的串行队列。如果我们需要执行一些串行任务,可以切换到这个 Scheduler 运行
ConcurrentDispatchQueueScheduler:封装了 GCD 的并行队列。如果我们需要执行一些并发任务,可以切换到这个 Scheduler 运行
OperationQueueScheduler:封装了 NSOperationQueue
subscribeOn
observeOn

  • .orEmpty 可以将 String? 类型的 ControlProperty 转成 String
  • throttle 是 RxSwift 的一个特性。因为有时当一些东西改变时,通常会做大量的逻辑操作。而使用 Throttling 特性,不会产生大量的逻辑操作,而是以一个小的合理的幅度去执行。比如做一些实时搜索功能时,这个特性很有用
    debounce和throttle有类似的作用

参考文章:本文章参考航歌的RxSwift系列文章

你可能感兴趣的:(RxSwift操作符)