代码之家  ›  专栏  ›  技术社区  ›  N A

并行处理两个观测值并转换为单个观测值

  •  1
  • N A  · 技术社区  · 7 年前

    我有两个由一个可观察对象创建的可观察对象,如下所示

    import monix.reactive.Observable
    
    import scala.collection.immutable
    val a: immutable.Seq[(String, String)] = (0 to 10).toList.map(x =>(s"left-$x", s"right-$x"))
    
    val originalStream: Observable[(String, String)] = Observable.fromIterable(a)
    
    val leftStream: Observable[String] = originalStream.map(_._1).map(println)
    
    val rightStream: Observable[String] = originalStream.map(_._2).map(println)
    

    现在,我如何并行运行leftStream和rightStream,并将它们组合在一起,以获得一个可以订阅的新的可观察对象?做一个可观察的。合并是按顺序执行它们。

    1 回复  |  直到 7 年前
        1
  •  2
  •   JVS    7 年前

    leftStream.zip(rightStream) 并应向两条流提供背压。

    但使用map从originalStream创建leftStream和rightStream,意味着originalStream中的元素将转到这些流中的任何一个,而不是两个。

    推荐文章