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(撒旦)