日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java obervable_RxJava中Observable,Completable和Single之间有什么区别

發(fā)布時(shí)間:2025/3/11 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java obervable_RxJava中Observable,Completable和Single之间有什么区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Observable 是通用ReactiveX構(gòu)建塊,它是隨時(shí)間發(fā)送值的事件源 . (因此存在ReactiveX擴(kuò)展到的每種語(yǔ)言)

簡(jiǎn)而言之,Observable事件是:

onNext *(onCompleted | onError)? /(*零或更多? - 零或1)

Single和Completable是RxJava獨(dú)家推出的新類型,它們代表減少類型的 Observable ,具有更簡(jiǎn)潔的API .

Single 表示發(fā)出單個(gè)值或錯(cuò)誤的 Observable .

Completable 表示 Observable ,它不會(huì)發(fā)出任何值,但只會(huì)發(fā)出終端事件 onError 或 onCompleted

你可以想到差異,比如返回的方法的差異:

對(duì)象集合 - 可觀察

單個(gè)對(duì)象 - 單個(gè)

和不返回值的方法(void方法) - 可完成 .

當(dāng)你有面向任務(wù)的Observable并且你期望單個(gè)值,例如執(zhí)行一次的網(wǎng)絡(luò)請(qǐng)求并返回值(或錯(cuò)誤)時(shí), Single 可能是合適的,網(wǎng)絡(luò)調(diào)用是一次性操作的,這意味著你不希望它返回額外的隨時(shí)間變化的 Value 另一個(gè)例子是DB獲取數(shù)據(jù)操作 .

Completable 適用于 Observable 并且你沒有't care about the value resulted from the operation, or there isn' t . 例如,更新緩存,操作可以成功/失敗,但沒有值 .

另一個(gè)例子是一些長(zhǎng)時(shí)間運(yùn)行的init操作,它不會(huì)返回任何內(nèi)容 . 它可以是僅通過(guò)成功指示產(chǎn)生的UPDATE / PUT網(wǎng)絡(luò)呼叫 .

在任何情況下,Completable和Single都沒有添加新功能,但它們引入了更強(qiáng)大和簡(jiǎn)潔的API,它們更多地講述了API暴露的Observable背后的操作 .

Edit:

RxJava2可能:

RxJava2添加了一個(gè)名為 Maybe 的新類型, Maybe 是 Completable 和Single的組合 .

在上面這樣的語(yǔ)言中, Maybe 可以被認(rèn)為是一種返回某種類型的 Optional 的方法, Optional 是一個(gè)圍繞Object的包裝器,它明確告訴我們是否有一些值 - Object 或不是(而不是null) .

使用 Maybe ,我們可以擁有與 Single 完全相同的值,或者不返回任何內(nèi)容 - 就像 Completable 一樣 . 另外,和兩者一樣,我們有錯(cuò)誤 .

當(dāng)我們想要標(biāo)記 Observable 可能沒有值并且只是完成時(shí), Maybe 很有 Value .

一個(gè)例子將從緩存中獲取,我們不一定在緩存中有一個(gè)值,所以在這種情況下,我們將完成,o.w . 我們將從緩存中獲取 onNext .

這也值得使用RxJava2處理流中的非空值 .

RxJava2 Flowable:

首先,讓我們來(lái)定義背壓 . Backpressure是一種處理數(shù)據(jù)生成速度快于處理速度的方法 . Flowable 具有背壓支持,允許下游請(qǐng)求物品 . 您可以閱讀有關(guān)差異的更多信息here .

總結(jié)

以上是生活随笔為你收集整理的java obervable_RxJava中Observable,Completable和Single之间有什么区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。