首页 > 编程语言 > 详细

6. RxSwift 订阅操作过滤1 map、buffer、filter

时间:2020-11-21 22:29:36      阅读:39      评论:0      收藏:0      [点我收藏+]

map

Swiftmap 用法一样,对值进行处理并返回

let sub = PublishSubject<String>()

sub.map { $0 + "mmmmm" }
    .subscribe { event in
        print(event.element)
    }
    .disposed(by: disposeBag)
sub.onNext("a")
//Optional("ammmmm")

buffer

timeSpan 缓存间隔时间、 count 缓存个数 、 scheduler 线程
发送两个event后会触发订阅。满 2 秒也会触发订阅 ,如果event 没有发送空数组

let sub = PublishSubject<String>()
sub.buffer(timeSpan: 2, count: 2, scheduler: MainScheduler.asyncInstance)
    .subscribe { event in
        print("订阅1", event)
    }.disposed(by: disposeBag)

sub.onNext("发送1")
sub.onNext("发送2")

filter

过滤 同Swiftfilter一样

let ob = Observable.of(10, 11, 12, 99, 33, 55, 77)
ob.filter { $0 > 20
}.subscribe(onNext: { element in
    print(element)
}).disposed(by: disposeBag)

搬迁自本人简书

6. RxSwift 订阅操作过滤1 map、buffer、filter

原文:https://www.cnblogs.com/i2yf/p/14016621.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!