在线二区人妖系列_国产亚洲欧美日韩在线一区_国产一级婬片视频免费看_精品少妇一区二区三区在线

鍍金池/ 教程/ Android/ Subscribe
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁展示的操作符用于對(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è)頁面的操作符可用于根據(jù)條件發(fā)射或變換Observables,或者對(duì)它們做布爾運(yùn)算:
Do
Repeat
Serialize
這個(gè)頁面展示的操作符可用于過濾和選擇Observable發(fā)射的數(shù)據(jù)序列。
這個(gè)頁面列出了很多用于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è)頁面展示了可用于對(duì)Observable發(fā)射的數(shù)據(jù)執(zhí)行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應(yīng)式編程
這個(gè)頁面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

Subscribe

Subscribe

操作來自O(shè)bservable的發(fā)射物和通知

Subscribe操作符是連接觀察者和Observable的膠水。一個(gè)觀察者要想看到Observable發(fā)射的數(shù)據(jù)項(xiàng),或者想要從Observable獲取錯(cuò)誤和完成通知,它首先必須使用這個(gè)操作符訂閱那個(gè)Observable。

Subscribe操作符的一般實(shí)現(xiàn)可能會(huì)接受一到三個(gè)方法(然后由觀察者組合它們),或者接受一個(gè)實(shí)現(xiàn)了包含這三個(gè)方法的接口的對(duì)象(有時(shí)叫做ObserverSubscriber):

onNext

每當(dāng)Observable發(fā)射了一項(xiàng)數(shù)據(jù)它就會(huì)調(diào)用這個(gè)方法。這個(gè)方法的參數(shù)是這個(gè)Observable發(fā)射的數(shù)據(jù)項(xiàng)。

onError

Observable調(diào)用這個(gè)方法表示它無法生成期待的數(shù)據(jù)或者遇到了其它錯(cuò)誤。這將停止Observable,它在這之后不會(huì)再調(diào)用onNextonCompleted。onError方法的參數(shù)是導(dǎo)致這個(gè)錯(cuò)誤的原因的一個(gè)表示(有時(shí)可能是一個(gè)Exception或Throwable對(duì)象,其它時(shí)候也可能是一個(gè)簡(jiǎn)單的字符串,取決于具體的實(shí)現(xiàn))。

onCompleted

如果沒有遇到任何錯(cuò)誤,Observable在最后一次調(diào)用onCompleted之后會(huì)調(diào)用這個(gè)方法。

如果一個(gè)Observable直到有一個(gè)觀察者訂閱它才開始發(fā)射數(shù)據(jù)項(xiàng),就稱之為"冷"的Observable;如果一個(gè)Observable可能在任何時(shí)刻開始發(fā)射數(shù)據(jù),就稱之為"熱"的Observable,一個(gè)訂閱者可能從開始之后的某個(gè)時(shí)刻開始觀察它發(fā)射的數(shù)據(jù)序列,它可能會(huì)錯(cuò)過在訂閱之前發(fā)射的數(shù)據(jù)。

RxJava中的實(shí)現(xiàn)是subscribe方法。

如果你使用無參數(shù)的版本,它將觸發(fā)對(duì)Observable的一個(gè)訂閱,但是將忽略它的發(fā)射物和通知。這個(gè)操作會(huì)激活一個(gè)"冷"的Observable。

你也可以傳遞一到三個(gè)函數(shù)給它,它們會(huì)按下面的方法解釋:

  1. onNext
  2. onNextonError
  3. onNext, onErroronCompleted

最后,你還可以傳遞一個(gè)ObserverSubscriber接口給它,Observer接口包含這三個(gè)以on開頭的方法。Subscriber接口也實(shí)現(xiàn)了這三個(gè)方法,而且還添加了幾個(gè)額外的方法,用于支持使用反壓操作(reactive pull backpressure),這讓Subscriber可以在Observable完成前取消訂閱。

subscribe方法返回一個(gè)實(shí)現(xiàn)了Subscription接口的對(duì)象。這個(gè)接口包含unsubscribe方法,任何時(shí)刻你都可以調(diào)用它來斷開subscribe方法建立的Observable和觀察者之間的訂閱關(guān)系。

foreach

forEach方法是簡(jiǎn)化版的subscribe,你同樣可以傳遞一到三個(gè)函數(shù)給它,解釋和傳遞給subscribe時(shí)一樣。

不同的是,你無法使用forEach返回的對(duì)象取消訂閱。也沒辦法傳遞一個(gè)可以用于取消訂閱的參數(shù)。因此,只有當(dāng)你明確地需要操作Observable的所有發(fā)射物和通知時(shí),你才應(yīng)該使用這個(gè)操作符。

BlockingObservable

BlockingObservable類中也有一個(gè)類似的叫作forEach的方法。詳細(xì)的說明見 BlockingObservable

上一篇:Debounce下一篇:Zip