Мне было интересно, есть ли оператор cache()
, который может кэшировать x количество выбросов, но также истечать их через определенный интервал времени (например, 1 минуту). Я искал что-то вроде...
Observable<ImmutableList<MyType>> cachedList = otherObservable
.cache(1, 1, TimeUnit.MINUTES);
Это приведет к кэшированию одного элемента, но срок его действия истечет, и кеш будет очищен через минуту.
Я провел небольшое исследование и нашел оператора replay. Казалось, что это удовлетворит эту потребность, но у меня есть несколько вопросов. Почему он горячий и должен быть подключен? Отличает ли это его от оператора cache()
? Я знаю, что cache()
имитирует тему, но не требует подключения.