裹异步代码,我在MongoDB中插入一条记录:呼叫阻塞
val observable: Observable[Completed] = collection.insertOne(doc)
observable.subscribe(new Observer[Completed] {
override def onNext(result: Completed): Unit = { println("Inserted"); }
override def onError(e: Throwable): Unit = { println(" \n\nFailed " + e + "\n\n"); fail() }
override def onComplete(): Unit = { println("Completed"); }
})
即使onError
调用回调函数的测试通过。这是因为insertOne
是异步方法,并且在调用onError
之前完成测试。我想将insertOne方法封装成阻塞调用,因此subscribe
不会被调用,直到observable
值被设置。
有没有一种惯用的方法来实现这一点是在斯卡拉?
你可以看看[ReactiveMongo(http://reactivemongo.org/) – cchantep