Повторите, когда альтернатива, если наблюдаемая не завершена?

Я хотел бы вручную повторить наблюдаемое с последним выданным значением.

Я знаю операторов повтора и повтора, однако эти афаики работают только для ошибочных и завершенных наблюдаемых. Моя наблюдаемая никогда не заканчивается, так что это не работает. Я хотел бы спросить, есть ли способ, отличный от этой настройки 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());
}
Другие вопросы по тегам