[RxSwift] Subject

AsyncSubject 將在源 Observable 產(chǎn)生完成時(shí)間之后,發(fā)出最后一個(gè)元素(有且僅有最后一個(gè)元素)。如果源 Observable 沒(méi)有發(fā)出任何元素,只有一個(gè)完成事件,則AsyncSubject也只有一個(gè)完成事件。

PublishSubject 將對(duì)觀察者發(fā)送訂閱后產(chǎn)生的元素,而在訂閱前發(fā)出的元素將不會(huì)發(fā)送給觀察者。訂閱者只能接收訂閱后的事件,適合發(fā)送新的事件 let subject = PublishSubject<String>()

ReplaySubject 將對(duì)觀察者發(fā)送全部的元素,無(wú)論觀察者是何時(shí)進(jìn)行訂閱的。 let subject = ReplaySubject<String>.create(bufferSize: 1)

當(dāng)觀察者對(duì) BehaviorSubject 進(jìn)行訂閱時(shí),它會(huì)將源 Observable 中最新的元素發(fā)送出來(lái)(如果不存在最新的元素,就發(fā)出默認(rèn)元素)。然后將隨后產(chǎn)生的元素發(fā)送出來(lái)。如果源 Observable 因?yàn)楫a(chǎn)生了一個(gè) error 事件而中止, BehaviorSubject 就不會(huì)發(fā)出任何元素,而是將這個(gè) error 事件發(fā)送出來(lái)。let subject = BehaviorSubject(value: "abc")

https://beeth0ven.github.io/RxSwift-Chinese-Documentation/content/rxswift_core/observable_and_observer.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 參考RxSwift中文文檔[https://beeth0ven.github.io/RxSwift-Chinese...
    碼代碼的小馬閱讀 303評(píng)論 0 0
  • RxSwift之Subject 在 RxsWift 中還有一種非常特殊的序列 Subject - 即公也為受。Su...
    silasjs閱讀 649評(píng)論 0 4
  • Subject 是 RxSwift 中一種特殊的序列, 最重要的特征是 它即為可觀察序列, 也為觀察者. 在實(shí)際開(kāi)...
    lb_閱讀 499評(píng)論 0 2
  • 框架里面定義了一些輔助類型,它們既是可監(jiān)聽(tīng)序列也是觀察者。如果你能合適的應(yīng)用這些輔助類型,它們就可以幫助你更準(zhǔn)確的...
    左腿丶閱讀 524評(píng)論 0 1
  • 通常在使用RxSwift的時(shí)候,我們并不會(huì)直接去使用observable來(lái)創(chuàng)建序列,更多的時(shí)候使用的是一系列的su...
    暮云_開(kāi)發(fā)閱讀 747評(píng)論 0 0

友情鏈接更多精彩內(nèi)容