Как я мог сделать что-то вроде этого:
У меня есть наблюдаемое, которое выдает какой-то результат, который я загружаю из API.Это отображается в ResultObject
, который содержит состояние (загрузка, успех, ошибка) и объект или ошибку (я не хочу выдавать ошибку, потому что эта наблюдаемая будет обновляться снова).
ДляТеперь я объединяю две наблюдаемые, одна просто излучает ResultObject
с состоянием loading
и наблюдаемую, которая действительно загружает данные, а затем испускает ResultObject
с состоянием success
.
Обычно, если вБыстрая сеть, эта часть загрузки довольно быстрая, поэтому пользовательский интерфейс реагирует на состояние loading
, показывает это в течение нескольких сотен миллисекунд, а затем показывает данные.Выглядит не очень хорошо.
Теперь я хочу показать этот индикатор загрузки просто, если загрузка данных занимает больше секунды.
Прежде чем я исправлю это на стороне пользовательского интерфейса, я подумал спросить вот что:
Есть ли возможность иметь наблюдаемый, иметь оператор, который делает что-то вроде этого:
myObservable
.emitAfterTimeout(1000, new ResultObject(LOADING)
Обычный оператор timeout
не помогает, потому что мне нужно поддерживать наблюдаемую активность, я все равно хочу получить результат.
Спасибо за вашу помощь