美文网首页ios
算术和集合操作

算术和集合操作

作者: 你家旭哥 | 来源:发表于2017-08-09 11:35 被阅读10次

    对可观察到的整个序列进行操作的操作符。

    toArray

    将可观察序列转换为数组,将该数组作为一个新的单元素可观察序列发出,然后终止。

    let disposeBag = DisposeBag()
    
    Observable.range(start: 1, count: 10)
        .toArray()
        .subscribe { print($0) }
        .disposed(by: disposeBag)  //  next([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])  completed
    

    reduce

    以初始值开始,然后将一个累加器闭包应用于可观察序列发出的所有元素,并将聚合结果作为一个单元素可观察序列返回。

    let disposeBag = DisposeBag()
    
    Observable.of(10, 100, 1000)
        .reduce(1, accumulator: +)
        .subscribe(onNext: { print($0) })
        .disposed(by: disposeBag)    //   1111
    

    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("🍊")
    
    variable.value = subject2
    
    subject2.onNext("I would be ignored")
    subject2.onNext("🐱")
    
    subject1.onCompleted()   // inner  subject2.onNext("🐱")
    
    subject2.onNext("🐭")   // next(🍎) next(🍐) next(🍊) next(🐱)  next(🐭)
    

    可连接的操作

    相关文章

      网友评论

        本文标题:算术和集合操作

        本文链接:https://www.haomeiwen.com/subject/temfrxtx.html