如何避免在RxJava2中嵌套Single

时间:2018-04-09 10:07:00

标签: kotlin rx-java

我在RxJava范例中相当新。我正在做以下是导致嵌套的单个对象。

  tickHappened.map{
    func(it)
  }
  //I get Single<Single<ArrayList<String>>>

此处tickHappened:Single<T>func<T>(T param):Single<ArrayList<String>>

  tickHappened.map{
    func(it)
  }
  //I get Single<Single<ArrayList<String>>>
   .map { single ->
            single.map { list ->
                list.size
            }
        }

我实际上需要返回Single<Int>,这是传递的Arraylist的大小。我需要在上面的链中使用两次地图,这会导致Single<Single<Int>>

有没有办法避免单打?如果我理解Rxjava,那么将Single包含在另一个Single中是没有意义的吗?如果没有,那么有没有办法返回Single<Int>

1 个答案:

答案 0 :(得分:1)

作为初学者,需要学习的一件事是flatMap运算符,它可以在RxJava周围使用,是解决问题所需的最常用运算符:

Count of child accounts(account_child_id)

Count the number of accounts won(stage=Won).

Count the number of distinct accounts with potential=’HP’

Count the number of distinct accounts with pipeline=’HP’