【发布时间】:2019-08-19 17:35:15
【问题描述】:
我将 RxJava 与 AndroidFastNetworking 库一起使用。如果我想使用调度程序类创建一个每 60 秒初始化一次 Http 请求的 Observable,但我希望它等待初始化请求完成(成功或错误),然后再次开始 60 秒间隔并初始化后续一,那会是什么样子?
【问题讨论】:
标签: http rx-java afnetworking
我将 RxJava 与 AndroidFastNetworking 库一起使用。如果我想使用调度程序类创建一个每 60 秒初始化一次 Http 请求的 Observable,但我希望它等待初始化请求完成(成功或错误),然后再次开始 60 秒间隔并初始化后续一,那会是什么样子?
【问题讨论】:
标签: http rx-java afnetworking
使用rangeLong 源和flatMap 和maxConcurrent = 1(确保flatMap 一次只订阅一个内部Flowable):
Single<Result> request = ...;
Flowable<Result> delay =
Flowable.<Result>empty()
.delaySubscription(60, TimeUnit.SECONDS, scheduler);
Flowable<Result> flowable =
Flowable
.rangeLong(0, Long.MAX_VALUE)
.flatMap(n -> request
.toFlowable()
.concatWith(delay), 1))
.doOnNext(result -> System.out.println(result))
...
【讨论】: