我有以下任务:
我有一些方法Security MONTHLY RETURN QUARTERLY RETURN
-------- -------------- ----------------
1 (130/150)-1 (130/90)-1
,必须将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: Obesrver对id创建或调用者一无所知。所有人都知道观察者是如何填充和方法,必须执行它。
答案 0 :(得分:1)
我在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)
调用整个可观察堆栈。