以下圖片均來自官網(wǎng)
操作符類別
創(chuàng)建
變換
- FlatMap
FlatMap操作符可以將Observable發(fā)射出的數(shù)據(jù)轉(zhuǎn)化成多個Observables,并將轉(zhuǎn)化后的數(shù)據(jù)[可能是多個]平坦化為一個新的Observable
flatMap.c.png
FlatMap操作符通過將您指定的函數(shù)應(yīng)用于源Observable發(fā)出的每個item來轉(zhuǎn)換Observable,該函數(shù)返回一個本身可以發(fā)出item的Observable。 FlatMap然后合并這些Observables的items,將這些合并結(jié)果以自己的順序發(fā)布。
這個操作符非常有用,當(dāng)Observable返回的數(shù)據(jù)并非你所需要的內(nèi)容是,你可以通過此方法將items轉(zhuǎn)化成你所需的數(shù)據(jù)內(nèi)容并再次發(fā)送出去.當(dāng)然需要注意的是,FlatMap操作符在合并發(fā)送Observables的items數(shù)據(jù)時,數(shù)據(jù)可能會出現(xiàn)交錯.在特定語言實現(xiàn)中,如果你對變化后的發(fā)送順序有嚴(yán)格的要求,那么使用ConcatMap吧,它不會交換已變換的items的發(fā)送,而是以嚴(yán)格的順序發(fā)送這些數(shù)據(jù).