.concatMap() запускает следующую наблюдаемую, но предыдущая не была закончена
Я использую RxJava на Android. У меня есть довольно простой кусок кода здесь: 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 ждал окончания первой наблюдаемой, прежде чем приступить к следующей...?
1 ответ
Пожалуйста, попробуйте так:
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());