Rx中的那些操作符

2017-07-19  本文已影响91人  一铭_

[TOC]

记录学习 Rx 过程中的各种操作符以ß及用法还有 tips 等等.
所有弹珠图均来自 RxMarbles App.

Filtering Opertators

Skipping Opertators

Taking Opertators

taking 是 skip 的对立面,这样就很好理解了. 直接放弹珠图.

take.png takeWhile.png takeUntil.png

Transforming Opertators

public func flatMap<O: ObservableConvertibleType>(selector: (E) throws -> O) -> Observable<O.E> {
    return FlatMap(source: asObservable(), selector: selector)
}

在 Rx 中,flatMap可以把一个序列转换成一组序列,然后再把这一组序列拍扁成一个序列。拍扁 其实就是降维的意思.

flatMap.png

Combining Opertators

CombineLatest.png Concat.png Merge.png StartWith.png

share 与 shareReplay

如果有多个 observable需要共享同一个事件,就需要用到 share.
有一个情形,如果一个请求需要多次订阅,但又不想多次请求,那么就需要多个订阅者共享一个订阅者对象.
share: 如果订阅者降到0,会重置队列重新开始发送
shareReplay(_): 这里要传一个 bufferSize, 在share的基础上,队列会从最新的值开始重播bufferSize个值。
详细链接

to be continued

上一篇下一篇

猜你喜欢

热点阅读