我在Android上使用RxJava。 我在这里有一段相当简单的代码: 可观察到的> 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()));
我想做什么=&gt;
-> 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正在等待第一个观察者在推出下一个观察之前结束......?
答案 0 :(得分:0)
请尝试这样:
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());