RxSwift (6) 观察量序列转换符

9 篇文章 0 订阅

toArraay

将一个序列 发出的所有信号元素 转化为数组

func rx_toArray() {
    let disposeBag = DisposeBag()

    Observable.of("1","a","b")//range(start: 1, count: 10)
        .toArray()
        .subscribe { print($0) }
        .disposed(by: disposeBag)
}
打印结果
next(["1", "a", "b"])
completed

reduce

将整个 序列的元素值做累计处理,最后返回一个结果信号

func rx_reduce() {
    let disposeBag = DisposeBag()

    Observable.of("2", "B", "骚年")
        .reduce("你是", accumulator: +)
        .subscribe(onNext: { print($0) })
        .disposed(by: disposeBag)
}
打印结果:
你是2B骚年

concat

连接多个序列,正序按照Completed信号进行连接,前面的序列没有发出Completed信号,那么后面序列发出的信号不予 往下发送。Completed连接次信号的前一次信号与后面所有信号

func rx_concat()  {
    let disposeBag = DisposeBag()

    let subject1 = BehaviorSubject(value: "苹果")
    let subject2 = BehaviorSubject(value: "狗")

    let variable = Variable(subject1)

    variable.asObservable()
        .concat()
        .subscribe { print($0) }
        .disposed(by: disposeBag)

    subject1.onNext("小萝莉")
    subject1.onNext("女仆")
    //subject1.onCompleted()
    variable.value = subject2

    subject2.onNext("I would be ignored")
    subject2.onNext("nice")
    subject2.onNext("萌萌哒")
    subject1.onCompleted()

    subject2.onNext("撒旦")
}
打印结果
next(苹果)
next(小萝莉)
next(女仆)
next(萌萌哒)
next(撒旦)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值