rxjava 源码问答

Q1:map 和 flatMap 的区别?

A1:map 把一项数据转换成另一项,flatMap 把一项数据转换成一个数据源,这个数据源发出的数据作为 flatMap 向下传递的数据。

Q1:rxjava 如何实现?

A1:每个操作符返回一个对象,它的作用有两个:1、请求数据 2、被请求数据。第一个操作符对象只能被请求数据,订阅操作符对象只能请求数据。当你调用订阅操作符方法时,它会向上一个操作符产生的对象请求数据,上一个操作符的对象由于不是数据生产者,所以它继续向上请求数据。请求一直来到第一个操作符的对象,它开始生产数据。数据产生完成,传递给第二个操作符对象,第二个再传给第三个,直到最后一个操作符对象。在数据向下传递过程中,操作符对象对数据进行处理。

Q1:observeOn 和 subscribeOn 有什么区别?

A1:observeOn 在数据向下传递的过程中修改线程,它影响了下面的操作符对象接收数据时所在的线程。subscribeOn 在数据请求向上传递时改变线程,它影响了上面操作符对象产生数据时的线程。 

你可能感兴趣的:(rxjava 源码问答)