This is how RxJava works.
, 12:50. , , :
Observable.just(1, 2, 3)
.subscribeOn(Schedulers.newThread())
.subscribeOn(Schedulers.io())
.subscribe(System.out::println);
, subscribeOn() . subscribeOn(Schedulers.io()) io. subscribeOn(Schedulers.newThread()) , ( ), . . , , io.
subscribeOn() observeOn(), . Transformer :
Transformer Func1<Observable<T>, Observable<R>>. : Observable , Observable . , inline.
, :
<T> Transformer<T, T> applySchedulers() {
return observable -> observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
, , :
final Transformer schedulersTransformer =
observable -> observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
@SuppressWarnings("unchecked")
<T> Transformer<T, T> applySchedulers() {
return (Transformer<T, T>) schedulersTransformer;
}
:
Observable.just(1, 2, 3)
.compose(applySchedulers())
.subscribe(System.out::println);
, .