【发布时间】:2015-05-17 17:16:57
【问题描述】:
我正在使用 observeOn 来观察另一个线程中的 observable:
Observable.just("Hello", "world!").observeOn(Schedulers.io()).subscribe(System.out::println);
但是,此代码不会始终输出“Hello world!”。 PublishSubject 也是如此:
PublishSubject<String> subject = PublishSubject.create();
subject.observeOn(Schedulers.io()).subscribe(System.out::println);
subject.onNext("Hello");
subject.onNext("world!");
为什么这段代码并不总是打印“Hello world!” ?我认为至少在第二个示例中,订阅会收到两条消息,因为它在 onNext 调用之前订阅。有没有办法接收这两条消息?
【问题讨论】:
-
你真的要在这里使用 Schedulers.io() 吗?根据文档,它应该仅用于 IO 操作,例如文件读取或网络。
-
从根本问题的角度来看,使用 io() 是无关紧要的。它用于阻塞操作,通常是 IO,但没有什么能阻止你对它们进行计算。
标签: rx-java