Дан горячий Observable<String> myObservable
, который выдает значения через неравные промежутки времени. Я хотел бы иметь возможность flatMap
и obs1
Observable
, и в зависимости от результата obs1
я хочу flatMap
и obs2
с начальным значением myObservable
. В качестве примера рассмотрим код ниже:
myObservable
.flatMap(stringResult -> myObject.getObs1(stringResult))
.flatMap(result -> {
if (result) {
myObject.getObs2(stringResult); // Here I would like to get stringResult emitted by myObservable but I can't
} else {
Observable.just(result); // We continue with the "same" initial Observable
}
});
Решением было бы сохранить myObservable
в переменной и получить его последнее значение во втором flatMap
, но я не смог этого добиться, поэтому я ищу более элегантное решение. Спасибо.