鍍金池/ 教程/ Android/ Single
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁(yè)面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁(yè)展示的操作符用于對(duì)整個(gè)序列執(zhí)行算法操作或其它操作,由于這些操作必須等待數(shù)據(jù)發(fā)射完成(通常也必須緩存這些數(shù)據(jù)),它們對(duì)于非常長(zhǎng)
IgnoreElements
Distinct
Last
Start
And/Then/When
Switch
創(chuàng)建操作
Materialize/Dematerialize
CombineLatest
Catch
實(shí)現(xiàn)自己的操作符
StringObservable
Map
ConnectableObservable
Using
Take
BlockingObservable
TakeLast
Defer
RxJavaSchedulersHook
First
FlatMap
這個(gè)頁(yè)面的操作符可用于根據(jù)條件發(fā)射或變換Observables,或者對(duì)它們做布爾運(yùn)算:
Do
Repeat
Serialize
這個(gè)頁(yè)面展示的操作符可用于過(guò)濾和選擇Observable發(fā)射的數(shù)據(jù)序列。
這個(gè)頁(yè)面列出了很多用于Observable的輔助操作符
Single
Retry
從錯(cuò)誤中恢復(fù)的技術(shù)
Sample
Merge
算術(shù)和聚合操作
Range
Timestamp
RxJava Issues
From
Subscribe
Subject
Delay
Skip
SubscribeOn
Filter
按字母順序排列的全部操作符列表
Timeout
Scan
onError
Zip
RxJava文檔和教程
Publish
ElementAt
第一個(gè)例子
SkipLast
Just
Timer
Debounce
GroupBy
條件和布爾操作
這個(gè)頁(yè)面展示了可用于對(duì)Observable發(fā)射的數(shù)據(jù)執(zhí)行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應(yīng)式編程
這個(gè)頁(yè)面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

Single

介紹

RxJava(以及它派生出來(lái)的RxGroovy和RxScala)中有一個(gè)名為Single的Observable變種。

Single類似于Observable,不同的是,它總是只發(fā)射一個(gè)值,或者一個(gè)錯(cuò)誤通知,而不是發(fā)射一系列的值。

因此,不同于Observable需要三個(gè)方法onNext, onError, onCompleted,訂閱Single只需要兩個(gè)方法:

  • onSuccess - Single發(fā)射單個(gè)的值到這個(gè)方法
  • onError - 如果無(wú)法發(fā)射需要的值,Single發(fā)射一個(gè)Throwable對(duì)象到這個(gè)方法

Single只會(huì)調(diào)用這兩個(gè)方法中的一個(gè),而且只會(huì)調(diào)用一次,調(diào)用了任何一個(gè)方法之后,訂閱關(guān)系終止。

Single的操作符

Single也可以組合使用多種操作,一些操作符讓你可以混合使用Observable和Single:

操作符 返回值 說(shuō)明
compose Single 創(chuàng)建一個(gè)自定義的操作符
concat and concatWith Observable 連接多個(gè)Single和Observable發(fā)射的數(shù)據(jù)
create Single 調(diào)用觀察者的create方法創(chuàng)建一個(gè)Single
error Single 返回一個(gè)立即給訂閱者發(fā)射錯(cuò)誤通知的Single
flatMap Single 返回一個(gè)Single,它發(fā)射對(duì)原Single的數(shù)據(jù)執(zhí)行flatMap操作后的結(jié)果
flatMapObservable Observable 返回一個(gè)Observable,它發(fā)射對(duì)原Single的數(shù)據(jù)執(zhí)行flatMap操作后的結(jié)果
from Single 將Future轉(zhuǎn)換成Single
just Single 返回一個(gè)發(fā)射一個(gè)指定值的Single
map Single 返回一個(gè)Single,它發(fā)射對(duì)原Single的數(shù)據(jù)執(zhí)行map操作后的結(jié)果
merge Single 將一個(gè)Single(它發(fā)射的數(shù)據(jù)是另一個(gè)Single,假設(shè)為B)轉(zhuǎn)換成另一個(gè)Single(它發(fā)射來(lái)自另一個(gè)Single(B)的數(shù)據(jù))
merge and mergeWith Observable 合并發(fā)射來(lái)自多個(gè)Single的數(shù)據(jù)
observeOn Single 指示Single在指定的調(diào)度程序上調(diào)用訂閱者的方法
onErrorReturn Single 將一個(gè)發(fā)射錯(cuò)誤通知的Single轉(zhuǎn)換成一個(gè)發(fā)射指定數(shù)據(jù)項(xiàng)的Single
subscribeOn Single 指示Single在指定的調(diào)度程序上執(zhí)行操作
timeout Single 它給原有的Single添加超時(shí)控制,如果超時(shí)了就發(fā)射一個(gè)錯(cuò)誤通知
toSingle Single 將一個(gè)發(fā)射單個(gè)值的Observable轉(zhuǎn)換為一個(gè)Single
zip and zipWith Single 將多個(gè)Single轉(zhuǎn)換為一個(gè),后者發(fā)射的數(shù)據(jù)是對(duì)前者應(yīng)用一個(gè)函數(shù)后的結(jié)果

操作符圖示

詳細(xì)的圖解可以參考英文文檔:Single

上一篇:Timestamp下一篇:Buffer