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

    xiaoxiao2021-03-25  55

    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(撒旦)
    转载请注明原文地址: https://ju.6miu.com/read-39765.html

    最新回复(0)