【问题标题】:How can I accumulate each 2 emitted values of Observable with Rx on Android?如何在 Android 上使用 Rx 累积 Observable 的每 2 个发射值?
【发布时间】:2018-07-01 11:20:36
【问题描述】:

我有一个 observable 每秒发出 0 到 10 的值。我需要累加每两个值并打印累加器值的结果并完成。

【问题讨论】:

    标签: android rx-java observable rx-android accumulate


    【解决方案1】:

    完成!我使用 buffer(4) 方法获取列表中的 4 个值中的每一个,并从中保存前两个值以累积我的计数器 :)

    【讨论】:

      【解决方案2】:

      您可以使用reduce 运算符。这是 kotlin 示例:

      Observable.just(1,2,3)
          .reduce { t1: Int, t2: Int -> t1+t2}
          .subscribe { print(it) } // prints only sum
      

      【讨论】:

        【解决方案3】:

        scan 运算符应该满足您的要求。

        Observable.from(1,2,3,4,5)
            .scan { t1, t2 -> t1 + t2 }
            .subscribe() // 1, 3, 6, 10, 15
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-15
          • 2019-02-17
          • 2012-04-19
          • 2018-06-10
          • 2017-06-18
          相关资源
          最近更新 更多