RxJava 单次最小执行时间
RxJava Single minimum execution time
我试图在网络请求期间在 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 实现这个的最佳方法是什么?
您可以尝试使用 zip
运算符:
Single.zip(
apiGetUserSingle(),
Single.timer(3, TimeUnit.SECONDS),
BiFunction<User, Long, Unit> { _, _ -> Unit })
如果你使用 RxKotlin,你可以避免明确指定类型:
Singles.zip(
apiGetUserSingle(),
Single.timer(3, TimeUnit.SECONDS)
) { _, _ -> Unit }
我试图在网络请求期间在 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 实现这个的最佳方法是什么?
您可以尝试使用 zip
运算符:
Single.zip(
apiGetUserSingle(),
Single.timer(3, TimeUnit.SECONDS),
BiFunction<User, Long, Unit> { _, _ -> Unit })
如果你使用 RxKotlin,你可以避免明确指定类型:
Singles.zip(
apiGetUserSingle(),
Single.timer(3, TimeUnit.SECONDS)
) { _, _ -> Unit }