Skip to content

Commit

Permalink
translate To.md
Browse files Browse the repository at this point in the history
  • Loading branch information
mcxiaoke committed Jul 24, 2015
1 parent b79a305 commit 5c66ff1
Show file tree
Hide file tree
Showing 11 changed files with 97 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
* [算术和聚合操作](operators/Mathematical-and-Aggregate-Operators.md)
* [异步操作](operators/Async-Operators.md)
* [连接操作](operators/Connectable-Observable-Operators.md)
* [转换操作](operators/To.md)
* [阻塞操作](operators/Blocking-Observable-Operators.md)
* [字符串操作](operators/String-Observables.md)
* [RxJava文档和教程](Topics.md)
Expand Down
1 change: 1 addition & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
* [Publish](operators/Publish.md)
* [RefCount](operators/RefCount.md)
* [Replay](operators/Replay.md)
* [转换操作](operators/To.md)
* [阻塞操作](operators/Blocking-Observable-Operators.md)
* [字符串操作](operators/String-Observables.md)
* [按字母顺序的操作符列表](All-Operators-List.md)
Expand Down
Binary file added images/operators/B.getIterator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/operators/nest.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/operators/to.c.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added operators/Connect.md
Empty file.
1 change: 1 addition & 0 deletions operators/Observable-Utility-Operators.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@
* [**`using( )`**](Using.md) — 创建一个只在Observable生命周期存在的资源
* [**`single( )`**](First.md) — 强制返回单个数据,否则抛出异常
* [**`singleOrDefault( )`**](First.md) — 如果Observable完成时返回了单个数据,就返回它,否则返回默认数据
* [**`toFuture( )`**, **`toIterable( )`**, **`toList( )`**](To.md) — 将Observable转换为其它对象或数据结构
Empty file added operators/Publish.md
Empty file.
Empty file added operators/RefCount.md
Empty file.
Empty file added operators/Replay.md
Empty file.
94 changes: 94 additions & 0 deletions operators/To.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
## To

将Observable转换为另一个对象或数据结构

![to](../images/operators/to.c.png)

ReactiveX的很多语言特定实现都有一种操作符让你可以将Observable或者Observable发射的数据序列转换为另一个对象或数据结构。它们中的一些会阻塞直到Observable终止,然后生成一个等价的对象或数据结构;另一些返回一个发射那个对象或数据结构的Observable。

在某些ReactiveX实现中,还有一个操作符用于将Observable转换成阻塞式的。一个阻塞式的Ogbservable在普通的Observable的基础上增加了几个方法,用于操作Observable发射的数据项。

### getIterator

![getIterator](../images/operators/B.getIterator.png)

`getIterator`操作符只能用于`BlockingObservable`的子类,要使用它,你首先必须把原始的Observable转换为一个`BlockingObservable`。可以使用这两个操作符:`BlockingObservable.from``the Observable.toBlocking`

这个操作符将Observable转换为一个`Iterator`,你可以通过它迭代原始Observable发射的数据集。

* Javadoc: [BlockingObservable.getIterator()](http://reactivex.io/RxJava/javadoc/rx/observables/BlockingObservable.html#getIterator())

### toFuture

![toFuture](../images/operators/B.toFuture.png)

`toFuture`操作符也是只能用于`BlockingObservable`。这个操作符将Observable转换为一个返回单个数据项的`Future`,如果原始Observable发射多个数据项,`Future`会收到一个`IllegalArgumentException`;如果原始Observable没有发射任何数据,`Future`会收到一个`NoSuchElementException`

如果你想将发射多个数据项的Observable转换为`Future`,可以这样用:`myObservable.toList().toBlocking().toFuture()`

* Javadoc: [BlockingObservable.toFuture()](http://reactivex.io/RxJava/javadoc/rx/observables/BlockingObservable.html#toFuture())

### toIterable

![toIterable](../images/operators/B.toIterable.png)

`toFuture`操作符也是只能用于`BlockingObservable`。这个操作符将Observable转换为一个`Iterable`,你可以通过它迭代原始Observable发射的数据集。

* Javadoc: [BlockingObservable.toIterable()](http://reactivex.io/RxJava/javadoc/rx/observables/BlockingObservable.html#toIterable())


### toList

![toList](../images/operators/toList.png)


通常,发射多项数据的Observable会为每一项数据调用`onNext`方法。你可以用`toList`操作符改变这个行为,让Observable将多项数据组合成一个`List`,然后调用一次`onNext`方法传递整个列表。

如果原始Observable没有发送任何数据就调用了`onCompleted``toList`返回的Observable会在调用`onCompleted`之前发射一个空列表。如果原始Observable调用了`onError``toList`返回的Observable会立即调用它的观察者的`onError`方法。

`toList`默认不在任何特定的调度器上执行。

* Javadoc: [toList()](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toList())

### toMap

![toMap](../images/operators/toMap.png)

`toMap`收集原始Observable发射的所有数据项到一个Map(默认是HashMap)然后发射这个Map。你可以提供一个用于生成Map的Key的函数,还可以提供一个函数转换数据项到Map存储的值(默认数据项本身就是值)。

`toMap`默认不在任何特定的调度器上执行。

* Javadoc: [toMap(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMap(rx.functions.Func1))
* Javadoc: [toMap(Func1,Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMap(rx.functions.Func1,%20rx.functions.Func1))
* Javadoc: [toMap(Func1,Func1,Func0)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMap(rx.functions.Func1,%20rx.functions.Func1,%20rx.functions.Func0))

### toMultiMap

![toMultiMap](../images/operators/toMultiMap.png)

`toMultiMap`类似于`toMap`,不同的是,它生成的这个Map同时还是一个`ArrayList`(默认是这样,你可以传递一个可选的工厂方法修改这个行为)。

`toMultiMap`默认不在任何特定的调度器上执行。

* Javadoc: [toMultiMap(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMultimap(rx.functions.Func1))
* Javadoc: [toMultiMap(Func1,Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMultimap(rx.functions.Func1,%20rx.functions.Func1))
* Javadoc: [toMultiMap(Func1,Func1,Func0)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMultimap(rx.functions.Func1,%20rx.functions.Func1,%20rx.functions.Func0))
* Javadoc: [toMultiMap(Func1,Func1,Func0,Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toMultimap(rx.functions.Func1,%20rx.functions.Func1,%20rx.functions.Func0,%20rx.functions.Func1))

### toSortedList

![toSortedList](../images/operators/toSortedList.png)

`toSortedList`类似于`toList`,不同的是,它会对产生的列表排序,默认是自然升序,如果发射的数据项没有实现`Comparable`接口,会抛出一个异常。然而,你也可以传递一个函数作为用于比较两个数据项,这是`toSortedList`不会使用`Comparable`接口。

`toSortedList`默认不在任何特定的调度器上执行。

* Javadoc: [toSortedList()](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toSortedList())
* Javadoc: [toSortedList(Func2)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#toSortedList(rx.functions.Func2))


### nest

![nest](../images/operators/nest.png)

`nest`操作符有一个特殊的用途:讲一个Observable转换为一个发射这个Observable的Observable。

0 comments on commit 5c66ff1

Please sign in to comment.