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

鍍金池/ 教程/ Android/ Start
調(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

Start

Start

返回一個(gè)Observable,它發(fā)射一個(gè)類似于函數(shù)聲明的值

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/start.png" alt="Start" />

編程語(yǔ)言有很多種方法可以從運(yùn)算結(jié)果中獲取值,它們的名字一般叫functions, futures, actions, callables, runnables等等。在Start目錄下的這組操作符可以讓它們表現(xiàn)得像Observable,因此它們可以在Observables調(diào)用鏈中與其它Observable搭配使用。

Start操作符的多種RxJava實(shí)現(xiàn)都屬于可選的rxjava-async模塊。

rxjava-async模塊包含start操作符,它接受一個(gè)函數(shù)作為參數(shù),調(diào)用這個(gè)函數(shù)獲取一個(gè)值,然后返回一個(gè)會(huì)發(fā)射這個(gè)值給后續(xù)觀察者的Observable。

注意:這個(gè)函數(shù)只會(huì)被執(zhí)行一次,即使多個(gè)觀察者訂閱這個(gè)返回的Observable。

toAsync

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/toAsync.png" alt="toAsync" />

rxjava-async模塊還包含這幾個(gè)操作符:toAsync, asyncAction, 和asyncFunc。它們接受一個(gè)函數(shù)或一個(gè)Action作為參數(shù)。

對(duì)于函數(shù)(functions),這個(gè)操作符調(diào)用這個(gè)函數(shù)獲取一個(gè)值,然后返回一個(gè)會(huì)發(fā)射這個(gè)值給后續(xù)觀察者的Observable(和start一樣)。對(duì)于動(dòng)作(Action),過(guò)程類似,但是沒(méi)有返回值,在這種情況下,這個(gè)操作符在終止前會(huì)發(fā)射一個(gè)null值。

注意:這個(gè)函數(shù)或動(dòng)作只會(huì)被執(zhí)行一次,即使多個(gè)觀察者訂閱這個(gè)返回的Observable。

startFuture

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/startFuture.png" alt="startFuture" />

rxjava-async模塊還包含一個(gè)startFuture操作符,傳遞給它一個(gè)返回Future的函數(shù),startFuture會(huì)立即調(diào)用這個(gè)函數(shù)獲取Future對(duì)象,然后調(diào)用Futureget()方法嘗試獲取它的值。它返回一個(gè)發(fā)射這個(gè)值給后續(xù)觀察者的Observable。

deferFuture

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/deferFuture.png" alt="deferFuture" />

rxjava-async模塊還包含一個(gè)deferFuture操作符,傳遞給它一個(gè)返回Future的函數(shù)(這個(gè)Future返回一個(gè)Observable),deferFuture返回一個(gè)Observable,但是不會(huì)調(diào)用你提供的函數(shù),直到有觀察者訂閱它返回的Observable。這時(shí),它立即調(diào)用Futureget()方法,然后鏡像發(fā)射get()方法返回的Observable發(fā)射的數(shù)據(jù)。

用這種方法,你可以在Observables調(diào)用鏈中包含一個(gè)返回Observable的Future對(duì)象。

fromAction

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/fromCallable.png" alt="fromAction" />

rxjava-async模塊還包含一個(gè)fromAction操作符,它接受一個(gè)Action作為參數(shù),返回一個(gè)Observable,一旦Action終止,它發(fā)射這個(gè)你傳遞給fromAction的數(shù)據(jù)。

fromCallable

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/fromCallable.png" alt="fromCallable" />

rxjava-async模塊還包含一個(gè)fromCallable操作符,它接受一個(gè)Callable作為參數(shù),返回一個(gè)發(fā)射這個(gè)Callable的結(jié)果的Observable。

fromRunnable

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/fromRunnable.png" alt="fromRunnable" />

rxjava-async模塊還包含一個(gè)fromRunnable操作符,它接受一個(gè)Runnable作為參數(shù),返回一個(gè)Observable,一旦Runnable終止,它發(fā)射這個(gè)你傳遞給fromRunnable的數(shù)據(jù)。

forEachFuture

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/forEachFuture.png" alt="forEachFuture" />

rxjava-async模塊還包含一個(gè)forEachFuture操作符。它其實(shí)不算Start操作符的一個(gè)變體,而是有一些自己的特點(diǎn)。你傳遞一些典型的觀察者方法(如onNext, onError和onCompleted)給它,Observable會(huì)以通常的方式調(diào)用它。但是forEachFuture自己返回一個(gè)Future并且在get()方法處阻塞,直到原始Observable執(zhí)行完成,然后它返回,完成還是錯(cuò)誤依賴于原始Observable是完成還是錯(cuò)誤。

如果你想要一個(gè)函數(shù)阻塞直到Observable執(zhí)行完成,可以使用這個(gè)操作符。

runAsync

rxjava-async模塊還包含一個(gè)runAsync操作符。它很特殊,返回一個(gè)叫做StoppableObservable的特殊Observable。

傳遞一個(gè)Action和一個(gè)SchedulerrunAsync,它返回一個(gè)使用這個(gè)Action產(chǎn)生數(shù)據(jù)的StoppableObservable。這個(gè)Action接受一個(gè)Observable和一個(gè)Subscription作為參數(shù),它使用Subscription檢查unsubscribed條件,一旦發(fā)現(xiàn)條件為真就立即停止發(fā)射數(shù)據(jù)。在任何時(shí)候你都可以使用unsubscribe方法手動(dòng)停止一個(gè)StoppableObservable(這會(huì)同時(shí)取消訂閱與這個(gè)StoppableObservable關(guān)聯(lián)的Subscription)。

由于runAsync會(huì)立即調(diào)用Action并開(kāi)始發(fā)射數(shù)據(jù),在你創(chuàng)建StoppableObservable之后到你的觀察者準(zhǔn)備好接受數(shù)據(jù)之前這段時(shí)間里,可能會(huì)有一部分?jǐn)?shù)據(jù)會(huì)丟失。如果這不符合你的要求,可以使用runAsync的一個(gè)變體,它也接受一個(gè)Subject參數(shù),傳遞一個(gè)ReplaySubject給它,你可以獲取其它丟失的數(shù)據(jù)了。

在RxJava中還有一個(gè)版本的From操作符可以將Future轉(zhuǎn)換為Observable,與start相似。