Slick有DBIO.seq
和DBIO.sequence
用于运行许多DBIOAction
s,后续操作不需要先前操作的结果。
我查看了源码,如果DBIO.seq
按顺序运行操作,对我来说并不明显。另一方面,DBIO.fold
有一个非常简单的实现,它肯定会按顺序运行动作,因为它只是在内部使用flatMap
。
我的问题是:使用seq
和sequence
时是否会保证订单,就像fold
一样?
答案 0 :(得分:2)
documentation表示DBIO.seq
中的操作是按顺序执行的:
最简单的组合器是DBIO.seq,它带有一个varargs列表 按顺序运行的动作
此外,在DBIO.seq
的{{3}}中,您会看到SynchronousDatabaseAction
内部foreach
被调用,这意味着每个都是基本上和(内部)同步调用任何平行运行。