![](/img/trans.png)
[英]What is the difference between concatMap and flatMap in RxJava
[英]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運算符,就像其他兩個運算符map和merge的序列一樣。
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.