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

鍍金池/ 教程/ Android/ FlatMap
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁展示的操作符用于對(duì)整個(gè)序列執(zhí)行算法操作或其它操作,由于這些操作必須等待數(shù)據(jù)發(fā)射完成(通常也必須緩存這些數(shù)據(jù)),它們對(duì)于非常長
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

FlatMap

FlatMap

FlatMap將一個(gè)發(fā)射數(shù)據(jù)的Observable變換為多個(gè)Observables,然后將它們發(fā)射的數(shù)據(jù)合并后放進(jìn)一個(gè)單獨(dú)的Observable

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

FlatMap操作符使用一個(gè)指定的函數(shù)對(duì)原始Observable發(fā)射的每一項(xiàng)數(shù)據(jù)執(zhí)行變換操作,這個(gè)函數(shù)返回一個(gè)本身也發(fā)射數(shù)據(jù)的Observable,然后FlatMap合并這些Observables發(fā)射的數(shù)據(jù),最后將合并后的結(jié)果當(dāng)做它自己的數(shù)據(jù)序列發(fā)射。

這個(gè)方法是很有用的,例如,當(dāng)你有一個(gè)這樣的Observable:它發(fā)射一個(gè)數(shù)據(jù)序列,這些數(shù)據(jù)本身包含Observable成員或者可以變換為Observable,因此你可以創(chuàng)建一個(gè)新的Observable發(fā)射這些次級(jí)Observable發(fā)射的數(shù)據(jù)的完整集合。

注意:FlatMap對(duì)這些Observables發(fā)射的數(shù)據(jù)做的是合并(merge)操作,因此它們可能是交錯(cuò)的。

在許多語言特定的實(shí)現(xiàn)中,還有一個(gè)操作符不會(huì)讓變換后的Observables發(fā)射的數(shù)據(jù)交錯(cuò),它按照嚴(yán)格的順序發(fā)射這些數(shù)據(jù),這個(gè)操作符通常被叫作ConcatMap或者類似的名字。

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

RxJava將這個(gè)操作符實(shí)現(xiàn)為flatMap函數(shù)。

注意:如果任何一個(gè)通過這個(gè)flatMap操作產(chǎn)生的單獨(dú)的Observable調(diào)用onError異常終止了,這個(gè)Observable自身會(huì)立即調(diào)用onError并終止。

這個(gè)操作符有一個(gè)接受額外的int參數(shù)的一個(gè)變體。這個(gè)參數(shù)設(shè)置flatMap從原來的Observable映射Observables的最大同時(shí)訂閱數(shù)。當(dāng)達(dá)到這個(gè)限制時(shí),它會(huì)等待其中一個(gè)終止然后再訂閱另一個(gè)。

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

還有一個(gè)版本的flatMap為原始Observable的每一項(xiàng)數(shù)據(jù)和每一個(gè)通知?jiǎng)?chuàng)建一個(gè)新的Observable(并對(duì)數(shù)據(jù)平坦化)。

它也有一個(gè)接受額外int參數(shù)的變體。

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

還有一個(gè)版本的flatMap會(huì)使用原始Observable的數(shù)據(jù)觸發(fā)的Observable組合這些數(shù)據(jù),然后發(fā)射這些數(shù)據(jù)組合。它也有一個(gè)接受額外int參數(shù)的版本。

flatMapIterable

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

flatMapIterable這個(gè)變體成對(duì)的打包數(shù)據(jù),然后生成Iterable而不是原始數(shù)據(jù)和生成的Observables,但是處理方式是相同的。

concatMap

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

還有一個(gè)concatMap操作符,它類似于最簡單版本的flatMap,但是它按次序連接而不是合并那些生成的Observables,然后產(chǎn)生自己的數(shù)據(jù)序列。

switchMap

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

RxJava還實(shí)現(xiàn)了switchMap操作符。它和flatMap很像,除了一點(diǎn):當(dāng)原始Observable發(fā)射一個(gè)新的數(shù)據(jù)(Observable)時(shí),它將取消訂閱并停止監(jiān)視產(chǎn)生執(zhí)之前那個(gè)數(shù)據(jù)的Observable,只監(jiān)視當(dāng)前這一個(gè)。

split

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

在特殊的StringObservable類(默認(rèn)沒有包含在RxJava中)中還有一個(gè)split操作符。它將一個(gè)發(fā)射字符串的Observable轉(zhuǎn)換為另一個(gè)發(fā)射字符串的Observable,只不過,后者將原始的數(shù)據(jù)序列當(dāng)做一個(gè)數(shù)據(jù)流,使用一個(gè)正則表達(dá)式邊界分割它們,然后合并發(fā)射分割的結(jié)果。