从网络和数据库 rxJava 获取请求

时间:2021-05-17 18:03:30

标签: android kotlin networking rx-java android-room

我会从数据库获取请求,同时从网络获取请求。从网络请求保存在 DateBase 中,我想,但它不起作用

fun loadMovie(id: Int): Single<AboutMovie> = database.getMovie(id = id)
        .onErrorResumeNext( aboutMovieService.getMovie(movieId = id) )
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())

1 个答案:

答案 0 :(得分:1)

我不完全理解您要实现的目标,但让我为您提供该代码。

fun loadMovie(id: Int): Single<Movie> =
    database.getMovie(id = id) // get cached entry from database
        .onErrorResumeNext { // if any error occured
            getNetworkMovie(id = id) // do network request
                .doOnSuccess { database.saveMovie(movie) } // on network request success save to database
        }