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的操作次数