flatMap 運算子
flatMap 運算子可幫助你將一個事件轉換為另一個事件(或將事件轉換為零,一個或多個事件)。
當你想要呼叫另一個返回 Observable 的方法時,它是一個完美的運算子
 public Observable<String> perform(int i) {
      // ...
 }
 Observable.just(1, 2, 3)
           .flatMap(i -> perform(i))
           .subscribe(result -> System.out.println("result ->" + result);
flatMap 將序列化 perform 訂閱,但 perform 發出的事件可能不會被訂購。因此,你可能會在第一次 perform 呼叫的事件之前收到上次執行呼叫所發出的事件(你應該使用 concatMap 代替)。
如果你在訂閱者中建立另一個 Observable,則應使用 flatMap 代替。主要思想是: 永遠不要離開 Observable
例如 :
 Observable.just(1, 2, 3)
           .subscribe(i -> perform(i));
可以很容易地被替換為:
 Observable.just(1, 2, 3)
           .flatMap(i -> perform(i))
           .subscribe();
Reactivex.io 文件: http : //reactivex.io/documentation/operators/flatmap.html