X秒后如何发射物体?



我有Observable.just("Hello"(,但我想在X秒后发出它。如何实现这一点?

您可以使用延迟运算符:

将可观测量的排放量在时间上向前移动特定量 延迟

延迟运算符通过在发出源可观察对象的每个项目之前暂停特定时间增量(您指定(来修改其源可观察。这具有将可观察对象发出的整个项目序列按指定的增量向前移动的效果。

下面的片段摘自此博客

Observable.create<String> { emitter ->
Log.d("DelayExample", "Create")
emitter.onNext("MindOrks")
emitter.onComplete()
}
.subscribeOn(Schedulers.io())
.delay(2, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
Log.d("DelayExample", it)
}

您可以使用Observable.timer

返回一个 Observable,

该 Observable 在指定的延迟后发出0L,然后完成。

默认情况下在computation调度程序上运行

你可以做

Observable.timer(3, TimeUnit.SECONDS)
.map(t -> "Hello")

如果你的来源不仅仅是值,而是Observable,你可以这样做

Observable<String> source = Observable.just("Hello");
Observable.timer(3, TimeUnit.SECONDS)
.concatMap(t -> source);

只需使用Timer()功能,如下所示:

Observable.Timer(TimeSpan.FromSeconds(X)).Select(_ => "Hello")

相关内容

  • 没有找到相关文章

最新更新