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

RxJava 创建操作符form

2016-02-18 16:17 375 查看
form操作符也是调用了create来创建的Observable部分源码:
public final static <T> Observable<T> from(T[] array) {
return from(Arrays.asList(array));
}
public final static <T> Observable<T> from(Iterable<? extends T> iterable) {
return create(new OnSubscribeFromIterable<T>(iterable));
}
public final static <T> Observable<T> create(OnSubscribe<T> f) {
return new Observable<T>(hook.onCreate(f));
}
from操作符是将其他类型的对象或数据类型转换成Observable,如:
String[] arr={"one","two","three","four","five"};
Observable.from(arr).subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
LogUtils.d("-------------->onCompleted:");
}

@Override
public void onError(Throwable e) {
LogUtils.d("-------------->onError:" + e);
}

@Override
public void onNext(String s) {
LogUtils.d("-------------->onNext:" + s);
}
});
当然也可以有简化方式,比如你只关心onNext,可以Integer[] arr2={1,2,3,4,5};Observable.from(arr2).subscribe(new Action1<Integer>() {@Overridepublic void call(Integer integer) {}});
不奇怪,源码中封装了一下:
同样可以之关心异常或者结束或者同时关注等等
 Observable.from(arr2).subscribe(new Action1<Integer>() {@Overridepublic void call(Integer integer) {}}, new Action1<Throwable>() {@Overridepublic void call(Throwable throwable) {}}, new Action0() {//complete@Overridepublic void call() {}});

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