ReactiveX-简介

ReactiveX是一个API,它有很多实现。

Observable填充了异步遍历多元素的空白

  single items multiple items
synchronous T getData() Iterable<T> getData()
asynchronous Future<T> getData() Observable<T> getData()

 如果将Iterable看成是pull模式(因为是consumer阻塞向producer拉数据),Observable则是push模式(producer主动推数据给consumer)

event Iterable (pull) Observable (push)
retrieve data T next() onNext(T)
discover error throws Exception onError(Exception)
complete !hasNext() onCompleted()

对于下例getData方法来说,Observable可以有很多实现,但对于Observer来说如何实现并不重要。

public Observable<data> getData();

Iterable代码示例

getDataFromLocalMemory()
  .skip(10)
  .take(5)
  .map({ s -> return s + " transformed" })
  .forEach({ println "next => " + it })

 Observable代码示例

getDataFromNetwork()
  .skip(10)
  .take(5)
  .map({ s -> return s + " transformed" })
  .subscribe({ println "onNext => " + it })

参考:http://reactivex.io/intro.html

猜你喜欢

转载自www.cnblogs.com/holoyong/p/9094847.html