我如何使用StartWith()rx运算符,但仅当序列不为空时?

时间:2016-04-14 14:02:56

标签: reactive-programming

我有一个rx observable,我需要添加一个特定的项目,但只有当observable发出至少一个项目时。

我去了所有的运营商,但找不到合适的。最接近的是StartWith,但根据图表,它会立即发出项目,不会计入下一个项目。

是否可以通过将其与其他一些运营商相结合来实现这一目标? 感谢。

1 个答案:

答案 0 :(得分:0)

我一直在尝试做同样的事情,我想出的唯一不是很反应:

    Observable.just(1, 2, 3)
    .toList()
    .flatMap(items -> {
      if (items.size() > 0) {
        items.add(0, 0);
      }
      return Observable.from(items);
    })

它远非完美,在“热”可观察的情况下不起作用。