指定一個觀察者在哪個調度器上觀察這個Observable
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/observeOn.c.png" alt="observeOn" />
很多ReactiveX實現都使用調度器 "Scheduler
"來管理多線程環(huán)境中Observable的轉場。你可以使用ObserveOn
操作符指定Observable在一個特定的調度器上發(fā)送通知給觀察者 (調用觀察者的onNext
, onCompleted
, onError
方法)。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/observeOn.e.png" alt="observeOn" />
注意:當遇到一個異常時ObserveOn
會立即向前傳遞這個onError
終止通知,它不會等待慢速消費的Observable接受任何之前它已經收到但還沒有發(fā)射的數據項。這可能意味著onError
通知會跳到(并吞掉)原始Observable發(fā)射的數據項前面,正如圖例上展示的。
SubscribeOn
操作符的作用類似,但它是用于指定Observable本身在特定的調度器上執(zhí)行,它同樣會在那個調度器上給觀察者發(fā)通知。
RxJava中,要指定Observable應該在哪個調度器上調用觀察者的onNext
, onCompleted
, onError
方法,你需要使用observeOn
操作符,傳遞給它一個合適的Scheduler
。