目錄:
RxSwift - 入門
RxSwift Observable Create
RxSwift Subject
RxSwift Combination Operators
RxSwift Transforming Operators
RxSwift Filterning and conditional operators
RxSwift Mathematical and aggregate operators
RxSwift Connectable Operators
RxSwift ErrorHandding Operators
RxSwift Debug Operators
Demo地址
toArray
把事件包裝成為一個數(shù)組没咙,一次性發(fā)送出來
example("toArray") {
let disposeBag = DisposeBag()
Observable.range(start: 1, count: 10)
.toArray()
.subscribe { print($0) }
.disposed(by: disposeBag)
}
toArray.png
reduce
設(shè)置一個初始值拌夏,讓后遍歷事件序列中的每一個事件路捧,根據(jù)closure計算值廓俭,把最終的結(jié)果發(fā)送出來
example("reduce") {
let disposeBag = DisposeBag()
Observable.of(1, 2, 2, 3, 1, 4, 2)
.reduce(1, accumulator: +)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
}
reduce.png
concat
把多個Observable串聯(lián)在一起婿屹,只有前面的的Observable調(diào)用了
completed
事件勇哗,后面的Observable發(fā)送的事件才會被監(jiān)聽到伶椿,如果當(dāng)前事件發(fā)生了error
或者dispose
事件贵扰,整個Observable都會銷毀
example("concat") {
let disposeBag = DisposeBag()
let subject1 = BehaviorSubject(value: "1")
let subject2 = BehaviorSubject(value: "a")
let subject = PublishSubject<Observable<String>>()
subject.concat()
.subscribe(
onNext: { print("next ", $0) },
onError: { print("error ",$0) },
onCompleted: { print("onCompleted") },
onDisposed: { print("onDisposed") }
)
.disposed(by: disposeBag)
subject.onNext(subject1)
subject.onNext(subject2)
subject1.onNext("2")
subject1.onNext("3")
//subject2.onError(TestError.test)
//subject1.onNext("??")
subject2.onNext("I would be ignored")
subject2.onNext("b")
subject1.onCompleted()
//subject1.dispose()
//subject1.onError(TestError.test)
subject2.onNext("c")
//subject2.onError(TestError.test)
subject2.onNext("d")
}
concat.png