.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());
Другие вопросы по тегам