[英]How not to start ScheduledExecutorService task if previous one is not finished
[英].concatMap() start the next Observable but previous one was not finished
我在Android上使用RxJava。 我這里有一段非常簡單的代碼:Observable> observable =
Observable.create((ObservableOnSubscribe<Observable<Boolean>>) emitter1 -> {
emitter1.onNext(doSomething());
emitter1.onComplete();
}).concatMap(accessToken -> Observable.create((ObservableOnSubscribe<Observable<Boolean>>) emitter2 -> {
emitter2.onNext(doSomethingElse());
emitter2.onComplete();
}).observeOn(Schedulers.io()).subscribeOn(Schedulers.io()));
我想做什么=>
-> Start A
-> A is processing
-> A is ending
-> Start B
-> B is processing
-> B is ending
我實際上得到了什么:
-> Start A
-> A is processing
-> Start B
-> B is processing
-> A is ending
-> B is ending
但是我想concatMap正在等待第一個可觀察對象結束,然后再發布下一個可觀察對象...?
請嘗試這樣:
Observable.create((ObservableOnSubscribe<Observable<Boolean>>) emitter1 -> {
emitter1.onNext(doSomething());
emitter1.onComplete();
}).concatMap(accessToken -> Observable.create((ObservableOnSubscribe<Observable<Boolean>>) emitter2 -> {
emitter2.onNext(doSomethingElse());
emitter2.onComplete();
})).observeOn(Schedulers.io()).subscribeOn(Schedulers.io());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.