なぜRxJava 1.xのflatMap()演算子がmergeで実装されていますか?RxJavaでflatMapがmergeで実装されているのはなぜですか?
flatMap(からpublic final <R> Observable<R> flatMap(Func1<? super T, ? extends Observable<? extends R>> func) {
if (getClass() == ScalarSynchronousObservable.class) {
return ((ScalarSynchronousObservable<T>)this).scalarFlatMap(func);
}
return merge(map(func));
}
は)私が<? extends Observable<? extends R>>
に準拠して唯一の観測を返すことができます呼び出します。 map(func)コールよりも別のObservableにラップするので、Observable<? extends Observable<? extends R>>
のようなものになります。それで、map(func)の後にmerge()を呼び出す必要はないと私は思います。
マージ()演算子は、以下を実行するように言われている。
は任意 変換することなく、これらの観測によって放出されたアイテムを発すること 単一の観測に観測を発するその観測を平坦にします。
フラットマップの内部には、Observableが1つしかないObservableを生成できます。なぜマージするのですか?私はここで何が欠けていますか?
ありがとうございます。