函數(shù)響應(yīng)式編程框架RxSwift 學(xué)習(xí)——Subject

上一篇寫了Observable韭脊,這篇文章接著趁熱打鐵把Subject寫了。

關(guān)于Subject的定義庆捺,在RxSwift的文檔中它是這樣說的

A Subject is a sort of bridge or proxy that is available in some implementations of ReactiveX that acts both as an observer and as an Observable. Because it is an observer, it can subscribe to one or more Observables, and because it is an Observable, it can pass through the items it observes by reemitting them, and it can also emit new items.

簡單的比喻下壳猜,Observable像是一個(gè)水管,會源源不斷的有水冒出來精续。Subject就像一個(gè)水龍頭酿炸,它可以套在水管上糙申,接受Observable上面的事件叨叙。但是作為水龍頭锭弊,它下面還可以被別的observer給subscribe了。

在RxSwift中擂错,主要有三類Subject:

PublishSubject

它僅僅會發(fā)送observer訂閱之后的事件味滞,也就是說如果sequence上有.Next 的到來,但是這個(gè)時(shí)候某個(gè)observer還沒有subscribe它钮呀,這個(gè)observer就收不到這條信息剑鞍,它只會收到它訂閱之后發(fā)生的事件。

ReplaySubject

它和PublishSubject不同之處在于它不會漏消息爽醋。即使observer在subscribe的時(shí)候已經(jīng)有事件發(fā)生過了蚁署,它也會收到之前的事件序列。

BehaviorSubject

當(dāng)有observer在訂閱一個(gè)BehaviorSubject的時(shí)候蚂四,它首先將會收到Observable上最近發(fā)送一個(gè)信號(或者是默認(rèn)值)光戈,接著才會收到Observable上會發(fā)送的序列。

Variable

Variable是BehaviorSubject的封裝遂赠,它和BehaviorSubject不同之處在于久妆,不能向Variable發(fā)送.Complete.Error,它會在生命周期結(jié)束被釋放的時(shí)候自動發(fā)送.Complete解愤。

在我上一篇文章中镇饺,說到了一個(gè)比較常見的一個(gè)應(yīng)用場景乎莉,就是tableview滑動加載更多的數(shù)據(jù)送讲。在這里tableview滑動事件是一個(gè)Observable的(RxCocoa提供相應(yīng)支持), 我的page是一個(gè)Variable<Int>類型的屬性,它可以訂閱tableview上是否需要更改頁碼惋啃,然后page又被負(fù)責(zé)API請求的對象給訂閱了哼鬓,從而當(dāng)page變化的同時(shí)開始自動請求數(shù)據(jù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末边灭,一起剝皮案震驚了整個(gè)濱河市异希,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绒瘦,老刑警劉巖称簿,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惰帽,居然都是意外死亡憨降,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門该酗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來授药,“玉大人士嚎,你說我怎么就攤上這事』谶矗” “怎么了莱衩?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娇澎。 經(jīng)常有香客問我笨蚁,道長,這世上最難降的妖魔是什么趟庄? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任赚窃,我火速辦了婚禮,結(jié)果婚禮上岔激,老公的妹妹穿的比我還像新娘勒极。我一直安慰自己,他們只是感情好虑鼎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布辱匿。 她就那樣靜靜地躺著,像睡著了一般炫彩。 火紅的嫁衣襯著肌膚如雪匾七。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天江兢,我揣著相機(jī)與錄音昨忆,去河邊找鬼。 笑死杉允,一個(gè)胖子當(dāng)著我的面吹牛邑贴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叔磷,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼拢驾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了改基?” 一聲冷哼從身側(cè)響起繁疤,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秕狰,沒想到半個(gè)月后稠腊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸣哀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年架忌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诺舔。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳖昌,死狀恐怖备畦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情许昨,我是刑警寧澤懂盐,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站糕档,受9級特大地震影響莉恼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜速那,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一俐银、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧端仰,春花似錦捶惜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹤竭,卻和暖如春踊餐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臀稚。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工吝岭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吧寺。 一個(gè)月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓窜管,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撮执。 傳聞我的和親對象是個(gè)殘疾皇子微峰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容