knex.js 中的 createTable(...).createTable(...) 和 createTable(...).then(...) 有什么区别?

What is the difference between createTable(...).createTable(...) and createTable(...).then(...) in knex.js?

我正在使用 knex.js 连接到 MySQL 数据库。我想创建几个表。到目前为止,我已经看到了两种风格。其中之一链接了 createTable 的使用,

    knex.schema.createTable('foo',function(table){...}).createTable('bar'...)

另一种风格使用then机制来做同样的事情。

    knex.schema.createTable('foo',function(table){...}).then(function() {
        knex.schema.createTable.createTable('bar'...)

它们在语义上相似吗?我可以假设他们做同样的事情吗? 第一个子句完成后,他们两个都会执行第二个子句吗?

我认为评论应该足以作为答案,但是

then

在 Javascript returns 一个异步执行的承诺,而另一个方法是同步执行的,并且您的 javascript 在执行该行之前不会进入下一行.