RxJava Single最小执行时间

时间:2019-03-29 23:29:30

标签: kotlin rx-java

我正在尝试在网络请求期间在UI中显示进度条至少3秒钟。

此答案中描述的相同方法似乎不适用于Single。 RxJava Observable minimum execution time

Single.mergeDelayError(
    apiGetUserSingle(), 
    Single.timer(3, TimeUnit.SECONDS)
)
    .reduce { _, _ -> Unit }
    .compose(schedulerProvider.ioToMainSingleScheduler())


private fun apiGetUserSingle(): Single<User> // Network request

但是我看到一个错误:MaybeTransformer cannot be applied to SingleTransformer

用Single实现此目的的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用z运算符:

zip

如果使用RxKotlin,则可以避免明确指定类型:

 Single.zip(
        apiGetUserSingle(),
        Single.timer(3, TimeUnit.SECONDS),
        BiFunction<User, Long, Unit> { _, _ -> Unit })