RxSwift干货征服iOS

RxSwift - shareReplay

2016-01-27  本文已影响2220人  楼上那位
RxSwift - shareReplay
一直迷惑该方法的使用,看了这篇文章 有了一点眉目,就记录下来
  let sequenceOfInts = PublishSubject<Int>()
        let a = sequenceOfInts.map{ i -> Int in
            print("MAP---\\(i)")
            return i * 2
            }//.shareReplay(3)
        let b = a.subscribeNext {
            print("--1--\\($0)")
        }
        sequenceOfInts.on(.Next(1))
        sequenceOfInts.on(.Next(2))
        let c = a.subscribeNext {
            print("--2--\\($0)")
        }
        sequenceOfInts.on(.Next(3))
        sequenceOfInts.on(.Next(4))
        let d = a.subscribeNext {
            print("--3--\\($0)")
        }
        sequenceOfInts.on(.Completed)
        
        /**
        count= 0
        MAP---1
        --1--2
        MAP---2
        --1--4
        --2--2
        --2--4
        MAP---3
        --1--6
        --2--6
        MAP---4
        --1--8
        --2--8
        --3--4
        --3--6
        --3--8
        
        
        未replay的结果
        count= 0
        MAP---1
        --1--2
        MAP---2
        --1--4
        MAP---3
        --1--6
        MAP---3
        --2--6
        MAP---4
        --1--8
        MAP---4
        --2--8
        */

改方法的目的就是减少map的操作次数

上一篇下一篇

猜你喜欢

热点阅读