将一个序列 发出的所有信号元素 转化为数组
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将整个 序列的元素值做累计处理,最后返回一个结果信号
func rx_reduce() { let disposeBag = DisposeBag() Observable.of("2", "B", "骚年") .reduce("你是", accumulator: +) .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) } 打印结果: 你是2B骚年连接多个序列,正序按照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(撒旦)