Повторите, когда альтернатива, если наблюдаемая не завершена?
Я хотел бы вручную повторить наблюдаемое с последним выданным значением.
Я знаю операторов повтора и повтора, однако эти афаики работают только для ошибочных и завершенных наблюдаемых. Моя наблюдаемая никогда не заканчивается, так что это не работает. Я хотел бы спросить, есть ли способ, отличный от этой настройки Janky
queryObservable
.donNext(query -> lastQuery = query)
.mergeWith(repeatTriggerRelay)
.switchMap(query -> getData_NeverCompletingObservable(query));
void rerun() {
repeatTriggerRelay.onNext(lastQuery)
}
Может быть перегрузка воспроизведения () я не знаю? Спасибо
1 ответ
Решение
BehaviorSubject
должно быть простое решение:
BehaviorSubject<String> querySubject = BehaviorSubject.create();
querySubject
.switchMap(query -> getData_NeverCompletingObservable(query))
.subscribe(/* ... */);
querySubject.onNext("initial query");
void rerun() {
querySubject.onNext(querySubject.getValue());
}