2
Slick 3は、flatMapメソッドを使用してDBIOAction合成を提供します。また、2つのDBIOアクション間でバックエンドで計算を行うこともできます。それはほとんどの場合うまくいきますが、計算結果が将来のようなモナドにあるときに何をすべきですか?slick 3のFuture Inside DBIOAction構成の使用方法は?
val fooQuery = TableQuery[FooTable]
val barQuery = TableQuery[BarTable]
def requestService(content: Iterable[String]): Future[Iterable[Long]] = ???
def modify(ids: Iterable[Long], change: String) = {
val query = fooQuery.filter(_.id inSet ids).result.flatMap{ fooSeq =>
val content = fooSeq.map(_.contentField)
val requestServiceFuture = requestService(content)
val serviceResult = Await.result(requestServiceFuture, 1.minute)
barQuery.filter(_.id inSet serviceResult).delete //or other action
}
db.run(query.transactionally)
}
このコードをAwaitなしで非同期で実行する方法はありますか?