鍍金池/ 教程/ Android/ ReactiveX
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁展示的操作符用于對(duì)整個(gè)序列執(zhí)行算法操作或其它操作,由于這些操作必須等待數(shù)據(jù)發(fā)射完成(通常也必須緩存這些數(shù)據(jù)),它們對(duì)于非常長
IgnoreElements
Distinct
Last
Start
And/Then/When
Switch
創(chuàng)建操作
Materialize/Dematerialize
CombineLatest
Catch
實(shí)現(xiàn)自己的操作符
StringObservable
Map
ConnectableObservable
Using
Take
BlockingObservable
TakeLast
Defer
RxJavaSchedulersHook
First
FlatMap
這個(gè)頁面的操作符可用于根據(jù)條件發(fā)射或變換Observables,或者對(duì)它們做布爾運(yùn)算:
Do
Repeat
Serialize
這個(gè)頁面展示的操作符可用于過濾和選擇Observable發(fā)射的數(shù)據(jù)序列。
這個(gè)頁面列出了很多用于Observable的輔助操作符
Single
Retry
從錯(cuò)誤中恢復(fù)的技術(shù)
Sample
Merge
算術(shù)和聚合操作
Range
Timestamp
RxJava Issues
From
Subscribe
Subject
Delay
Skip
SubscribeOn
Filter
按字母順序排列的全部操作符列表
Timeout
Scan
onError
Zip
RxJava文檔和教程
Publish
ElementAt
第一個(gè)例子
SkipLast
Just
Timer
Debounce
GroupBy
條件和布爾操作
這個(gè)頁面展示了可用于對(duì)Observable發(fā)射的數(shù)據(jù)執(zhí)行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應(yīng)式編程
這個(gè)頁面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

ReactiveX

RxJava是 ReactiveX 在JVM上的一個(gè)實(shí)現(xiàn),ReactiveX使用Observable序列組合異步和基于事件的程序。更多關(guān)于ReactiveX的資料,可以查看 ReactiveX 介紹 頁面。

RxJava介紹

RxJava 是輕量級(jí)的

RxJava盡力做到非常輕巧。它僅關(guān)注Observable的抽象和與之相關(guān)的高層函數(shù),實(shí)現(xiàn)為一個(gè)單獨(dú)的JAR文件。

RxJava 是一個(gè)多語言實(shí)現(xiàn)

RxJava 支持Java 6或者更新的版本,以及其它的JVM語言如 Groovy, Clojure, JRuby, KotlinScala。RxJava 可用于更多的語言環(huán)境,而不僅僅是Java和Scala,而且它致力于尊重每一種JVM語言的習(xí)慣。

RxJava 第三方庫

下面是可與RxJava協(xié)作的第三方庫:

  • Hystrix - 用于分布式系統(tǒng)的一個(gè)延時(shí)和容錯(cuò)處理框架
  • Camel RX - 一個(gè)用于Apache Camel 的 RxJava 兼容層
  • rxjava-http-tail - 讓你可以跟蹤HTTP日志,就像使用 tail -f 一樣
  • mod-rxvertx - Extension for VertX - 使用 RxJava 封裝的VertX庫
  • rxjava-jdbc - 使用RxJava流式處理JDBC連接,還支持語句的函數(shù)式組合
  • rtree - 使用RxJava實(shí)現(xiàn)的一個(gè)純內(nèi)存的可變的R-tree和R*-tree

使用指南

你可以在Maven Central http://search.maven.org 找到用于Maven, Ivy, Gradle, SBT和其它構(gòu)建工具需要的二進(jìn)制文件和依賴信息.

Maven示例:

<dependency>
    <groupId>io.reactivex</groupId>
    <artifactId>rxjava</artifactId>
    <version>1.0.10</version>
</dependency>

Ivy示例:

<dependency org="io.reactivex" name="rxjava" rev="1.0.10" />

SBT示例:

libraryDependencies += "com.netflix.rxjava" % "rxjava-scala" % "1.0.10"

Gradle示例:

compile 'io.reactivex:rxjava:1.0.10'

如果你沒有使用構(gòu)建系統(tǒng),想直接下載JAR文件的話可以在這里找到:

https://repo1.maven.org/maven2/io/reactivex/

編譯構(gòu)建

檢出和構(gòu)建RxJava的源碼,使用以下命令:

$ git clone git@github.com:ReactiveX/RxJava.git
$ cd RxJava/
$ ./gradlew build

要執(zhí)行一個(gè)完整的構(gòu)建,使用這個(gè)命令:

$ ./gradlew clean build

構(gòu)建命令的輸出大概是這樣的:

$ ./gradlew build
:rxjava:compileJava
:rxjava:processResources UP-TO-DATE
:rxjava:classes
:rxjava:jar
:rxjava:sourcesJar
:rxjava:signArchives SKIPPED
:rxjava:assemble
:rxjava:licenseMain UP-TO-DATE
:rxjava:licenseTest UP-TO-DATE
:rxjava:compileTestJava
:rxjava:processTestResources UP-TO-DATE
:rxjava:testClasses
:rxjava:test
:rxjava:check
:rxjava:build

BUILD SUCCESSFUL

Total time: 30.758 secs

執(zhí)行完整的構(gòu)建的話,你會(huì)看到單元測試的執(zhí)行,輸出類似于這樣:

> Building > :rxjava:test > 91 tests completed

故障排除

有一位開發(fā)者上報(bào)了下面這個(gè)錯(cuò)誤:

Could not resolve all dependencies for configuration ':language-adaptors:rxjava-scala:provided'

他在從.gradle/caches.m2/repository/org/scala-lang/移除了舊版本的 scala-library之后解決了這個(gè)問題,然后執(zhí)行了一次完整構(gòu)建。(查看詳細(xì)信息)

在構(gòu)建RxJava時(shí)你可能會(huì)遇到下面的錯(cuò)誤:

Failed to apply plugin [id 'java'] Could not generate a proxy class for class nebula.core.NamedContainerProperOrder.

這是JVM的問題,詳細(xì)信息可以參考 GROOVY-6951 。如果遇到這個(gè)問題,可以在構(gòu)建RxJava之前執(zhí)行 export GRADLE_OPTS=-noverify,或者升級(jí)你機(jī)器上的JDK。

上一篇:From下一篇:RefCount