您的位置:首页 > 编程语言 > Java开发

RXJava 创建操作符

2016-09-29 14:59 288 查看
RXJava操作符的创建

just( ) — 将一个或多个对象转换成发射这个或这些对象的一个Observable

from( ) — 将一个Iterable, 一个Future, 或者一个数组转换成一个Observable

repeat( ) — 创建一个重复发射指定数据或数据序列的Observable

repeatWhen( ) — 创建一个重复发射指定数据或数据序列的Observable,它依赖于另一个Observable发射的数据

create( ) — 使用一个函数从头创建一个Observable

defer( ) — 只有当订阅者订阅才创建Observable;为每个订阅创建一个新的Observable

range( ) — 创建一个发射指定范围的整数序列的Observable

interval( ) — 创建一个按照给定的时间间隔发射整数序列的Observable

timer( ) — 创建一个在给定的延时之后发射单个数据的Observable

empty( ) — 创建一个什么都不做直接通知完成的Observable

error( ) — 创建一个什么都不做直接通知错误的Observable

never( ) — 创建一个不发射任何数据的Observable

create

Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> observer) {
try {
if (!observer.isUnsubscribed()) {
for (int i = 1; i < 5; i++) {
observer.onNext(i);
}
observer.onCompleted();
}
} catch (Exception e) {
observer.onError(e);
}
}
} ).subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}

@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}

@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});


结果

Next: 1
Next: 2
Next: 3
Next: 4
Sequence complete.


just:(2-9个参数)

Observable.just(1, 2, 3)
.subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}

@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}

@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});


结果

Next: 1
Next: 2
Next: 3
Sequence complete.


from

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
Observable.just(list).subscribe(new Subscriber<List<String>>() {
@Override public void onCompleted() {

}

@Override public void onError(Throwable e) {

}

@Override public void onNext(List<String> strings) {

}
});

Observable.from(list).subscribe(new Subscriber<String>() {
@Override public void onCompleted() {
Log.e("--------onCompleted ", "onCompleted");
}

@Override public void onError(Throwable e) {

}

@Override public void onNext(String s) {
Log.e("--------onNext ", "s : " + s);
}
});


结果

04-22 17:45:22.092  12883-12883/com.fernandocejas.android10.sample.presentation E/--------onNext﹕ s : a
04-22 17:45:22.092  12883-12883/com.fernandocejas.android10.sample.presentation E/--------onNext﹕ s : b
04-22 17:45:22.092  12883-12883/com.fernandocejas.android10.sample.presentation E/--------onNext﹕ s : c
04-22 17:45:22.092  12883-12883/com.fernandocejas.android10.sample.presentation E/--------onCompleted﹕ onCompleted


create( )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RXJava