RxJava Scheduler在主线程上观察

Eur*_*nes 14 java rx-java rx-java2

如果我写这样的事情,那么这两个操作和通知将是对当前线程...

Observable.fromCallable(() -> "Do Something")
    .subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)

如果我在后台线程这样的操作,那么这两个操作和通知将在后台线程...

Observable.fromCallable(() -> "Do Something")
    .subscribeOn(Schedulers.io())
    .subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)

如果我想在主线程上观察并在Android中执行后台我会做...

Observable.fromCallable(() -> "Do Something")
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)

但是如果我正在编写一个标准的Java程序,那么你想在主线程上观察到的状态是什么呢?

Dmi*_*try 8

对于RxJava2,请使用“ blockingSubscribe()

Flowable.fromArray(1, 2, 3)
                .subscribeOn(Schedulers.computation())
                .blockingSubscribe(integer -> {
                    System.out.println(Thread.currentThread().getName());
                });
Run Code Online (Sandbox Code Playgroud)


Tas*_*kos 6

将转换ObservableBlockingObservablevia .toBlocking(); 这为您提供了等待完成,获得一件物品等的阻塞方法。