我发现自己一遍又一遍地写作:
Observable.create(new Observable.OnSubscribe</* some type */>() {
@Override
public void call(Subscriber<? super /* some type */> subscriber) {
try {
subscriber.onNext(/* do something */);
subscriber.onCompleted();
} catch (IOException e) {
subscriber.onError(e);
}
}
}).observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.newThread());
用于网络运营。
有没有办法减少重复性?
答案 0 :(得分:2)
第一个create
可以替换为fromCallable
。
Observable.fromCallable(() -> calculationReturnsAValue());
可以通过创建Transformer来实现调度程序的应用:
Transformer schedulers = o ->
o.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
并与之合作:
source.compose(schedulers);