Rxjava 变换理解

flatMap() 的原理是这样的:

  • 1.使用传入的事件对象创建一个 Observable 对象;
  • 2.并不发送这个 Observable, 而是将它激活,于是它开始发送事件;
  • 3.每一个创建出来的 Observable 发送的事件,都被汇入同一个 Observable ,而这个 Observable负责将这些事件统一交给 Subscriber 的回调方法
  1. 这三个步骤,把事件拆成了两级,通过一组新创建的 Observable 将初始的对象『铺平』之后通过统一路径分发了下去。而这个『铺平』就是 flatMap() 所谓的 flat
  1. Oberverable** 相当于服务器**,在GET/POST请求后,返回数据给subscriber

flatmap的参数理解

@requires_authorization     
     ConnectionBase.getApiService2()
.getStudents(101)
.flatMap(new Func1>() {
@Override
public Observable call(Student student) {
return ConnectionBase.getApiService2().getAllCourse(student.getId());
}
})

Func1有两个入参,前者是原始的参数类型,后者是返回值类型;

你可能感兴趣的:(Rxjava 变换理解)