1 创建操作
创建操作符 Observable 开头
-
just() — 将一个或多个对象转换成发射这个或这些对象的一个Observable
-
fromArray(), fromFuture(),fromIterable(), — 将一个数组, 一个Future, 或者一个Iterable转换成一个Observable
-
create() — 使用一个函数从头创建一个Observable
-
defer() — 只有当订阅者订阅才创建Observable;为每个订阅创建一个新的Observable。(推迟)
-
range() — 创建一个发射指定范围的整数序列的Observable
rangeLong() -
interval() —创建一个按照给定的时间间隔发射整数序列的Observable ,默认在computation调度器上执行。(循环发送数据,数据从0开始递增)
intervalRange(long start, long count, long initialDelay, long period) -
timer() —创建一个在给定的延时之后发射单个数据的Observable ,默认在computation调度器上执行。(xx时间后,开始执行操作)
-
empty() — 创建一个什么都不做直接通知完成的Observable
-
error() — 创建一个什么都不做直接通知错误的Observable
-
never() — 创建一个不发射任何数据的Observable
1.1 java 不支持lambda
Flowable.just("Ios","Android").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.out.println(s);
}
});
1.2 支持lambda
Flowable.just("Ios","Android").subscribe(System.out::println);
String[] names = {"aa", "bb", "cc"};
Observable.fromArray(names)...
Observable.fromArray("one", "two", "three", "four", "five")...
List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
Observable.fromIterable(list)...
Observable.create(emitter -> {
emitter.onNext("0");
emitter.onNext("1");
emitter.onNext("2");
emitter.onComplete();
}
).subscribe(System.out::println, Throwable::printStackTrace);
1.3 支持Kotlin
Flowable.just("Ios","Android").subscribe(::println)
Observable.create<String> { emitter ->
emitter.onNext("0")
emitter.onNext("1")
emitter.onNext("2")
emitter.onComplete()
}.subscribe(::println, Throwable::printStackTrace)
// .subscribe ({ println("numIndex=$it") }, { t -> println(t) })
2 变换操作
-
map( ) — 对序列的每一项都应用一个函数来变换Observable发射的数据序列。
-
cast( ) — 在发射之前强制将Observable发射的所有数据转换