RxJava3.x入门(二)——创建操作符和变换操作符
创建操作符
一、基础创建
1.create()
使用Create操作符创建一个完整的Observable,可以传递onNext,onError和onCompleted等事件。
代码演示:
Observable.create((ObservableOnSubscribe<Integer>) e -> {
e.onNext(1);
e.onNext(2);
e.onNext(3);
}).subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
Log.d(TAG, "onSubscribe: "+d);
}
@Override
public void onNext(Integer integer) {
Log.d(TAG, "onNext: "+integer);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "onError: "+e);
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
});
二、快速创建
1.just()
- 特点:直接发送其中所传入的事件
注意事项: - just()最多只能发送9个参数
- 如果你传递null给just,它将会返回一个发射null值的Observable
代码演示:
Observable.just(1, 2, 3)
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
Log.d(TAG, "onSubscribe: "+d);
}
@Override
public void onNext(Integer integer) {
Log.d(TAG, "onNext: "+integer);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "onError: "+e);
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
});
2.fromArray()
- 特点:直接发送其中所传入的数据数组
- fromArray会将数组中的数据转换为Observable对象
应用场景:
被观察者对象(Observable)发送10个以上事件(数组形式),数组遍历
Integer[] nums = {
1, 2, 3};
Observable.fromArray(nums)
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
Log.d(TAG, "onSubscribe: "+d);
}
@Override
public void onNext(Integer integer) {
Log.d(TAG, "onNext: "+integer);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "onError: "+e);
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
});
3.fromIterable()
- 特点:直接发送 传入的集合List数据
应用场景:
- 快速创建 被观察者对象(Observable) 发送10个以上事件(集合形式)
- 集合元素遍历
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Observable.