Я хочу реализовать метод, чтобы отредактировать заметку, сохранить ее в локальной базе данных (кеше) и затем отправить на сервер в виде запроса POST.Я изучаю RxJava, и я хотел создать Observable
из заметки, а затем применить к ней преобразования, например сопоставить ее с моделью Entity и сохранить.Проблема в том, что мой метод возвращает Completable, а эта цепочка возвращает Observable<Completable>
.Как развернуть Completable
из этого Observable
, который я использовал только для запуска RxJava.Каждый editNote()
метод возвращает Completable
.
override fun editNote(note: Note): Completable {
return Observable.just(note)
.map { mapper.mapToEntity(it) }
.map { noteEntity ->
factory.getCacheDataStore().editNote(noteEntity)
.andThen { factory.getRemoteDataStore().editNote(noteEntity) }
}
}
======================================================
ОБНОВЛЕНИЕ
Наконец мне удалось найти "решение", но яЯ не уверен, что это правильно: -)
override fun editNote(note: Note): Completable {
return Observable.just(note)
.map { mapper.mapToEntity(it) }
.flatMapCompletable { noteEntity ->
factory.getCacheDataStore().editNote(noteEntity)
.andThen { factory.getRemoteDataStore().editNote(noteEntity) }
}
}