簡體   English   中英

rxjava:flatmap 和 map 的區別

[英]rxjava: difference between flatmap and map

我想知道這兩種方法之間的行為是否有任何差異,或者這只是風格問題:

private Single<JsonObject> foo() {
     return Single.just(new JsonObject()).flatMap(next -> Single.just(next));
}

private Single<JsonObject> bar() {
     return Single.just(new JsonObject()).map(next -> next);
}

行為沒有區別,因為兩者都是無意義的操作。 第一個簡單地重復將對象包裝成Single ,而第二個將其映射到自身。 你也永遠沒有理由這樣做。

閱讀 'flatMap()' 和 'map()':第一個將每個值轉換為不同值的 observable,第二個將每個值轉換為不同的值。

您可以為自己表示一個flatMap運算符,就像其他兩個運算符mapmerge的序列一樣。

Map將您的源項目轉換為 Observable,它根據map內部的函數發出一個值。 在這一點上, merge將有助於將每個新 observables 發出的每個 item 放在一起,而不是源 observables。

那本書上有一個很好的插圖https://www.manning.com/books/rxjava-for-android-developers

合並在一起的地圖

為了簡化這段代碼,引入了flatMap操作符

只有平面地圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM