gpt4 book ai didi

java - RXJava。可观察的连续人口

转载 作者:行者123 更新时间:2023-11-30 06:30:18 25 4
gpt4 key购买 nike

我有以下任务:

我有一些方法void populate(long id),它必须将id添加到某个集合中。这个方法经常被调用,所以我想“缓冲”一些值,然后填充集合。我有以下代码片段:

observable
.observeOn(notFXThread)
.buffer(1, TimeUnit.SECONDS)
.subscribeOn(JavaFxScheduler.platform())
.observeOn(JavaFxScheduler.platform())
.subscribe(next -> next.forEach(resultList::addAll));

但是我有两个大问题:

  1. 我不明白我需要如何初始化 observable。
  2. 我不明白如何实现 populate 方法。

希望有人能帮助我。

更新1:Obesrver 对 id 创建或调用者一无所知。观察者所知道的就是如何填充和方法,它必须执行它。

最佳答案

我在 PublishSubject 可观察类中找到了解决方案,因此初始化解决方案如下所示:

this.subject = PublishSubject.create();
this.subject
.observeOn(scheduler)
.subscribeOn(scheduler)
.buffer(2, TimeUnit.SECONDS)
.subscribeOn(JavaFxScheduler.platform())
.observeOn(JavaFxScheduler.platform())
.subscribe(result::addAll);

populate(long id)方法看起来像:

public void populate(final Long id) {
this.subject.onNext(id);
}

每个 this.subject.onNext(id) 调用整个可观察堆栈。

关于java - RXJava。可观察的连续人口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46301259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com