2017-04-15 157 views
4

我只是觀看了傑克沃頓The State of Managing State with RxJava會議。使用compose()和簡單的flatMap()之間有什麼區別?

他建議從視野變換的事件採取行動以這樣的方式

Observable<Event> events = RxView.clicks(view).map(__ -> new Event()); 
ObservableTransformer<Event, Action> action = events -> events.flatMap(/* ... */); 
events.compose(action).subscribe(); 

我想知道這個實施差別:

Observable<Event> events = RxView.clicks(view).map(__ -> new Event());  
Observable<Action> action = events.flatMap(/* ... */); 
action.subscribe(); 

之間有什麼區別使用compose()ObservableTransformer和簡單flatMap()有兩個 可觀察?

回答

7

有一個很好的解釋,由丹尼爾·盧,有關分歧。簡而言之:

不同之處在於compose()是更高級別的抽象:它對整個流進行操作,而不是單獨發射項目。

欲瞭解更多詳細信息,看看this article完整的解釋(在名爲節怎麼樣flatMap()?

相關問題