Я использую ReactiveX 1
(не могу перейти на версию 2).
Это просто пример проблемы, но, скажем, я хочу save
объект, использующий реактивный repository
.Он возвращает наблюдаемую величину saveResult, на которую подписан слой выше (например, контроллер).
Но тогда, если save
был успешным, мне нужно отправить event
.Отправка события также является реактивной и возвращает Observable
.На самом деле мне плевать на его результат (есть несколько журналов, и все тут).
Я сделал это следующим образом, но это выглядит немного некрасиво, потому что Observableception
. Есть ли способ сделать это чище? Я был бы удовлетворен некоторыми Observable<T> peek(rx.functions.Func1<? super T, Observable<?> func)
, но я не смог его найти
public Observable<Result<Entity>> save(Entity entity){
return entityRepository.saveEntity(entity) //Observable<Result<Entity>>
.doOnNext(saveResult -> saveResult
.ifSuccessful(entity -> sendEntityCreatedEvent(entity)) //Observable<Result<EntityCreatedEvent>>
.subscribe()
}
Спасибо,
Tyvrel