-
Notifications
You must be signed in to change notification settings - Fork 614
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 |