码迷,mamicode.com
首页 > 其他好文 > 详细

Rx 操作符六

时间:2020-04-12 11:05:10      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:操作符   note   blank   结束   int   sed   data   ref   bag   

  • take

仅仅从 Observable 中发出头 n 个元素

技术图片

通过 take 操作符你可以只发出头 n 个元素。并且忽略掉后面的元素,直接结束序列。

let disposeBag = DisposeBag()

Observable.of("??", "??", "??", "??", "??", "??")
    .take(3)
    .subscribe(onNext: { print($0) })
    .disposed(by: disposeBag)

技术图片

  • takeLast

仅仅从 Observable 中发出尾部 n 个元素

技术图片

通过 takeLast 操作符你可以只发出尾部 n 个元素。并且忽略掉前面的元素。

let disposeBag = DisposeBag()

Observable.of("??", "??", "??", "??", "??", "??")
    .takeLast(3)
    .subscribe(onNext: { print($0) })
    .disposed(by: disposeBag)

技术图片

  • takeUntil

忽略掉在第二个 Observable 产生事件后发出的那部分元素

技术图片

takeUntil 操作符将镜像源 Observable,它同时观测第二个 Observable。一旦第二个 Observable 发出一个元素或者产生一个终止事件,那个镜像的 Observable 将立即终止。

let disposeBag = DisposeBag()

let sourceSequence = PublishSubject<String>()
let referenceSequence = PublishSubject<String>()

sourceSequence
    .takeUntil(referenceSequence)
    .subscribe { print($0) }
    .disposed(by: disposeBag)

sourceSequence.onNext("??")
sourceSequence.onNext("??")
sourceSequence.onNext("??")

referenceSequence.onNext("??")

sourceSequence.onNext("??")
sourceSequence.onNext("??")
sourceSequence.onNext("??")

技术图片

  • takeWhile

镜像一个 Observable 直到某个元素的判定为 false

技术图片

takeWhile 操作符将镜像源 Observable 直到某个元素的判定为 false。此时,这个镜像的 Observable 将立即终止。

let disposeBag = DisposeBag()

Observable.of(1, 2, 3, 4, 3, 2, 1)
    .takeWhile { $0 < 4 }
    .subscribe(onNext: { print($0) })
    .disposed(by: disposeBag)

技术图片

Rx 操作符六

标签:操作符   note   blank   结束   int   sed   data   ref   bag   

原文地址:https://www.cnblogs.com/liuxiaokun/p/12683793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!