可观察到可观察序列

Seq of observable to observable

我使用 mongo-scala-driver 1.0.1 return Observable[Completed] 在 insertMany.

之后

我循环放置了很多文档,在所有文档都插入后我需要做一些操作。

我可以使用 observable.toFuture 获取 Seq[Future[Completed]] 然后 Future.sequence(...) 来处理未来。

但是在 Scala 中可以将 Seq[Observable[Completed]] 转换为 Observable[...] 吗?或者有更好的处理方式?

mongo-scala-driver 有它自己的 Observable trait org.mongodb.scala.Observable

这是一个示例,说明如何将 Observable 中的 List 扁平化为单个 Observable

List(
  Observable.interval(200 millis),
  Observable.interval(400 millis),
  Observable.interval(800 millis)
).toObservable.flatten.take(12).toBlocking.foreach(println(_))

您可以在此处找到此示例和更多示例:https://github.com/ReactiveX/RxScala/blob/0.x/examples/src/test/scala/examples/RxScalaDemo.scala

编辑

下面是 mongo api 应该可以使用的内容,虽然我没有测试它。

val observables: Seq[Observable[Int]] = ???
val result: Observable[Int] = Observable(observables).flatMap(identity)