flatMap() 的原理是這樣的:
- 1.使用傳入的事件對象創(chuàng)建一個 Observable 對象桥氏;
- 2.并不發(fā)送這個 Observable, 而是將它激活嚷硫,于是它開始發(fā)送事件;
- 3.每一個創(chuàng)建出來的 Observable 發(fā)送的事件,都被匯入同一個 Observable ,而這個 Observable負責將這些事件統(tǒng)一交給 Subscriber 的回調(diào)方法
- 這三個步驟,把事件拆成了兩級崎脉,通過一組新創(chuàng)建的 Observable 將初始的對象『鋪平』之后通過統(tǒng)一路徑分發(fā)了下去。而這個『鋪平』就是 flatMap() 所謂的 flat
- Oberverable** 相當于服務(wù)器**伯顶,在GET/POST請求后囚灼,返回數(shù)據(jù)給subscriber
flatmap的參數(shù)理解
@requires_authorization
ConnectionBase.getApiService2()
.getStudents(101)
.flatMap(new Func1<student, observable<course="">>() {
@Override
public Observable<course> call(Student student) {
return ConnectionBase.getApiService2().getAllCourse(student.getId());
}
})
Func1有兩個入?yún)ⅲ?strong>前者是原始的參數(shù)類型,后者是返回值類型祭衩;