我使用mongo-scala-driver 1.0.1在 insertMany 之后返回Observable [Completed]。
我把很多文档放在循环中,我需要在已经插入所有文件之后做一些操作。
我可以使用observable.toFuture来获取Seq [Future [Completed]],然后使用Future.sequence(...)来处理未来。
但是可以在Scala中将Seq[Observable[Completed]]
转换为Observable[...]
吗?或者有更好的方法来处理它?</ p>
mongo-scala-driver拥有自己的Observable trait org.mongodb.scala.Observable
答案 0 :(得分:1)
以下是如何将List
Observable
展平为单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)