【发布时间】:2019-05-14 16:17:48
【问题描述】:
我很难调用我的 api。我将 Reactivex 与 kotlin 和 Flowables 一起使用。如果我通过“If-Modified_since”标头传递的日期小于上次更新,我的 API 会返回一个项目列表。 如果没有更新,我会作为应用返回 android 应用 304 错误。
我需要执行以下程序。 1->我调用api 2->如果调用成功,将列表保存在Realm中,返回viewmodel 3->如果错误是304,我对项目执行缓存搜索(领域) 4-> 如果是另一个错误,我会正常返回 ViewModel 的错误
这是下面的代码,但我不确定是不是这样。
override fun getTickets(eventId: String): Flowable<List<Ticket>> {
return factory
.retrieveRemoteDataStore()
.getTickets(eventId)
.map {
saveTickets(it)
it
}.onErrorResumeNext { t: Throwable ->
if (t is HttpException && t.response().code() == 304) {
factory.retrieveCacheDataStore().getTickets(eventId)
} else
//Should return error
}
问题是,最好的方法是什么?
谢谢。
【问题讨论】:
标签: android kotlin rx-java reactivex