? ? ? ? 1? Observable基本使用
什么是Observable?以時間為索引的常量隊列就是Observable
在官網上可以看到這一張圖雁佳。
最上面的一排,就是一個Observable同云。從左到右糖权,表示時間由遠及近的流動過程。上面的每一個形狀炸站,就表示在“某個時間點發(fā)生的事件”星澳,而最右邊的豎線則表示事件成功結束。
因此旱易,我們是不是有了點概念禁偎?
那么廢話不多說,直接看一個最簡單的代碼吧阀坏。
of:用固定數量的元素生成一個Observable如暖;
from:用一個Sequence類型的對象創(chuàng)建一個Observable;
下面的代碼我是用from來生成一個包含字符1-9的observable
map就是一個可以對Observable中的元素變形的operator全释,它返回一個新的Observable對象
所以我這里是給字符0-9變成整形0-9
filter的操作也很容易看懂吧装处,篩選偶數
?? ? ? var obser = Observable.from(["0","1","2","3","4","5","6","7","8","9"]).map { Int($0) }
? ? ? ? ? ? .filter {
? ? ? ? ? ? ? ? if let item = $0,item %2==0{
? ? ? ? ? ? ? ? ? ? print("偶數:\(item)")
? ? ? ? ? ? ? ? ? ? returntrue
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? returnfalse
? ? ? ? }
到這一步? 代碼其實就是完成的,但運行是不會有結果浸船,因為需要訂閱妄迁,只有訂閱才能獲取到結果值
那么還有個問題,為什么會這樣呢李命?
首先Observable是異步操作的登淘。
Observable中的每一個元素,都可以理解為一個異步發(fā)生的事件
所以封字,就算map以及filter是同步執(zhí)行黔州,也會在Observable被訂閱后才會操作耍鬓。
? ? ? ? obser.subscribe(
? ? ? ? ? ? onNext: { eventinprint(event ??"")}, //成功結果
? ? ? ? ? ? onError:{print($0)}, // 錯誤
? ? ? ? ? ? onCompleted:{ print("結束") } // 執(zhí)行結束
? ? ? ? )
打印偶數進行篩選
下一章傳送門:rxSwift從零開始的代碼2 - 簡書