RxJava Observable 最小执行时间 [英] RxJava Observable minimum execution time
问题描述
我有一个 Observable(从网络获取数据).问题是 observable 可能快也可能慢,这取决于网络状况.
I have an Observable (which obtains data from network). The problem is that observable can be fast or slow depending on network conditions.
我在 observable 执行时显示进度小部件,并在 observable 完成时隐藏它.当网络速度快时 - 进度闪烁(出现和消失).我想将 observable 的最小执行时间设置为 1 秒.我该怎么做?
I show progress widget, when observable is executing, and hide it when observable completes. When the network is fast - progress flikers (appears and disappears). I want to set minimum execution time of observable to 1 second. How can I do that?
Delay"运算符不是一种选择,因为即使网络速度较慢,它也会延迟.
"Delay" operator is not an option because it will delay even for slow network.
推荐答案
你可以使用 Observable.zip()
来解决这个问题.给定
You can use Observable.zip()
for that. Given
Observable<Response> network = ...
可以的
Observable<Integer> readyNotification = Observable.just(42).delay(1, TimeUnit.SECONDS);
Observable delayedNetwork = network.zipWith(readyNotification,
(response, notUsed) -> response);
这篇关于RxJava Observable 最小执行时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!