RxJava испускает после тайм-аута, оставляйте наблюдаемые активными - PullRequest
0 голосов
/ 11 февраля 2019

Как я мог сделать что-то вроде этого:

У меня есть наблюдаемое, которое выдает какой-то результат, который я загружаю из API.Это отображается в ResultObject, который содержит состояние (загрузка, успех, ошибка) и объект или ошибку (я не хочу выдавать ошибку, потому что эта наблюдаемая будет обновляться снова).

ДляТеперь я объединяю две наблюдаемые, одна просто излучает ResultObject с состоянием loading и наблюдаемую, которая действительно загружает данные, а затем испускает ResultObject с состоянием success.

Обычно, если вБыстрая сеть, эта часть загрузки довольно быстрая, поэтому пользовательский интерфейс реагирует на состояние loading, показывает это в течение нескольких сотен миллисекунд, а затем показывает данные.Выглядит не очень хорошо.

Теперь я хочу показать этот индикатор загрузки просто, если загрузка данных занимает больше секунды.

Прежде чем я исправлю это на стороне пользовательского интерфейса, я подумал спросить вот что:

Есть ли возможность иметь наблюдаемый, иметь оператор, который делает что-то вроде этого:

myObservable
    .emitAfterTimeout(1000, new ResultObject(LOADING)

Обычный оператор timeout не помогает, потому что мне нужно поддерживать наблюдаемую активность, я все равно хочу получить результат.

Спасибо за вашу помощь

...