如何在RxJava2中concatEagerDelayError

时间:2019-03-13 10:01:38

标签: rx-java2 rx-kotlin2

如何在RxJava2 / RxKotlin2中实现 Observable.concatEagerDelayError 或等效功能?

有:

  • Observable.concatEager
  • Observable.concatDelayError

但不是:

  • Observable.concatEagerDelayError

我有什么:

fun getAll(): Observable<List<User>> = Observable.concatArrayDelayError(
    // from db
    userDAO
        .selectAll()
        .subscribeOn(ioScheduler),
    // from api
    userAPI
        .getAll()
        .doOnNext { lstUser -> Completable.concatArray(
            userDAO.deleteAll().subscribeOn(ioScheduler),
            userDAO.save(lstUser).subscribeOn(ioScheduler)
        ) }
        .subscribeOn(ioScheduler)
)

我希望具有相同的行为,但希望使用selectAll()和getAll(),因为没有理由等待db启动网络调用。

1 个答案:

答案 0 :(得分:1)

使用res/layout-large/activity_main.xml

concatMapEagerDelayError

JavaDoc

编辑:

 Observable.fromIterable(sources)
 .concatMapEagerDelayError(v -> v, true);

 Observable.fromArray(source1, source2, source3)
 .concatMapEagerDelayError(v -> v, true);