Ես ուզում եմ կիրառել նշումը խմբագրելու մեթոդ, այն պահել տեղական տվյալների բազայում (քեշ) և այն ուղարկել սերվերին որպես 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) }
}
}