すべてのDB呼び出しはすぐに返されます Futures
、たとえ彼らが彼らの操作を終えていなくても。これは非同期であり、同期ではありません。
Futures
に対応するようにコードを変更できます 2つの方法のいずれかで:
-
Await.result
を使用できます すべてのDB呼び出しで、完了するまでその時点で待機します。例:Await.result(db.run(insertEffect), Duration.Inf)
-
.map
を使用できます (または.flatMap
別のFuture
を使用している場合 内から)、DB操作が完了したときに実行するコードを使用します。例:db.run(insertEffect).map(_ => ... do stuff... )
別のスタックオーバーフローをご覧ください