-
Notifications
You must be signed in to change notification settings - Fork 613
Blocking Observable Operators
mcxiaoke edited this page Jul 19, 2015
·
50 revisions
这一节解释 BlockingObservable 的子类. 一个阻塞的Observable 继承普通的Observable类,增加了一些可用于阻塞Observable发送的数据的操作符。
要将一个普通的Observable 转换为 BlockingObservable,可以使用 Observable.toBlocking( ) 方法或者BlockingObservable.from( ) 方法。
-
forEach( )— 对Observable发送的每一项数据调用一个方法,会阻塞直到Observable完成 -
first( )— 阻塞直到Observable发送了一个数据,然后返回第一项数据 -
firstOrDefault( )— 阻塞直到Observable发送了一个数据或者完成,返回第一项数据,或者返回默认值 -
last( )— 阻塞直到Observable完成,然后返回最后一项数据 -
lastOrDefault( )— 阻塞直到Observable完成,然后返回最后一项的数据,或者返回默认值 -
mostRecent( )— 返回一个总是返回Observable最近发送的数据的iterable -
next( )— 返回一个iterable,会阻塞直到Observable发送了另一个值,然后返回那个值 -
latest( )— 返回一个iterable,会阻塞直到或者除非Observable发送了一个iterable没有返回的值,然后返回这个值 -
single( )— 如果Observable完成时只发送了一个值,返回那个值,否则抛出异常 -
singleOrDefault( )— 如果Observable完成时只发送了一个值,返回那个值,否则否好默认值 -
toFuture( )— 将Observable转换为一个Future -
toIterable( )— 将一个发送数据序列的Observable转换为一个Iterable -
getIterator( )— 将一个发送数据序列的Observable转换为一个Iterator
伴随这个解释还有一个修改版的弹珠图,这里就是表示阻塞Observable的弹珠图:

- javadoc:
BlockingObservable - javadoc:
toBlocking() - javadoc:
BlockingObservable.from()
| 操作符 | 执行结果 | Rx.NET等价操作 | ||
|---|---|---|---|---|
| 发送多个数据的Observable | 发送单个数据的Observable | 不发送数据的Observable | ||
Observable.first |
第一项 | 单个数据 | 该元素不存在 | firstAsync |
BlockingObservable.first |
第一项 | 单个数据 | 该元素不存在 | first |
Observable.firstOrDefault |
第一项 | 单个数据 | 默认数据 | firstOrDefaultAsync |
BlockingObservable.firstOrDefault |
第一项 | 单个数据 | 默认数据 | firstOrDefault |
Observable.last |
最后一项 | 单个数据 | 该元素不存在 | lastAsync |
BlockingObservable.last |
最后一项 | 单个数据 | 该元素不存在 | last |
Observable.lastOrDefault |
最后一项 | 单个数据 | 默认数据 | lastOrDefaultAsync |
BlockingObservable.lastOrDefault |
最后一项 | 单个数据 | 默认数据 | lastOrDefault |
Observable.single |
非法参数 | 单个数据 | 该元素不存在 | singleAsync |
BlockingObservable.single |
非法参数 | 单个数据 | 该元素不存在 | single |
Observable.singleOrDefault |
非法参数 | 单个数据 | 默认数据 | singleOrDefaultAsync |
BlockingObservable.singleOrDefault |
非法参数 | 单个数据 | 默认数据 | singleOrDefault |