RXJava。不断观察到的人口数量

时间:2017-09-19 13:03:33

标签: java javafx rx-java

我有以下任务:

我有一些方法Security MONTHLY RETURN QUARTERLY RETURN -------- -------------- ---------------- 1 (130/150)-1 (130/90)-1 ,必须将void populate(long id)添加到某个集合中。这个方法经常调用,所以我想'缓冲'一些值的数量,然后填充集合。我有以下代码段:

id

但我有两大问题:

  1. 我不明白我需要如何初始化observable。
  2. 我不明白我需要如何实施observable .observeOn(notFXThread) .buffer(1, TimeUnit.SECONDS) .subscribeOn(JavaFxScheduler.platform()) .observeOn(JavaFxScheduler.platform()) .subscribe(next -> next.forEach(resultList::addAll)); 方法。
  3. 我希望有人可以帮助我。

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

1 个答案:

答案 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)调用整个可观察堆栈。