美文网首页
sequelize中spread和then的区别

sequelize中spread和then的区别

作者: 747大雄 | 来源:发表于2019-05-10 09:32 被阅读0次

sequelize 中spread 和then的区别

之前一直从事Pyhon的开发工作,web开发、爬虫、自动化测试都在写,后来因为部分系统使用NODEJS来开发,感觉异步写法与同步写法的太多不适应,幸好有async、await语法糖,方便了我们的开发和转换速度,但是对于没太经常编写Python中的异步编程,对于理解异步、回调等等知识还是有点难度。下面是我在使用sequelize这个ORM时,遇到了spread与then的区别,以及有些方法返回的对象是promise,有些不是,让人有点懵。如果使用sqlalchemy或者django中的ORM根本不会有这些问题啊。默念Python大法好。

spread普通:

sequelize.query("select * from projects where id=?", {
    replacements: [1]
}).spread(function (results) {
    console.log(results);
});

// 返回结果
[ TextRow {
    id: 1,
    title: 'python',
    desc: 'pythonnnnnnnnnnnnnn',
    finish: 2019-02-01T22:22:22.000Z,
    createdAt: 2019-05-09T18:18:12.000Z,
    updatedAt: 2019-05-09T18:18:15.000Z } ]

then普通:

sequelize.query("select * from projects where id=?", {
    replacements: [1]
}).then(function (results) {
    console.log(results);
});

// 返回结果
[ [ TextRow {
      id: 1,
      title: 'python',
      desc: 'pythonnnnnnnnnnnnnn',
      finish: 2019-02-01T22:22:22.000Z,
      createdAt: 2019-05-09T18:18:12.000Z,
      updatedAt: 2019-05-09T18:18:15.000Z } ],
  [ TextRow {
      id: 1,
      title: 'python',
      desc: 'pythonnnnnnnnnnnnnn',
      finish: 2019-02-01T22:22:22.000Z,
      createdAt: 2019-05-09T18:18:12.000Z,
      updatedAt: 2019-05-09T18:18:15.000Z } ] ]

spread格式化:

sequelize.query("select * from projects where id=?", {
    replacements: [1],
    type: sequelize.QueryTypes.SELECT
}).spread(function (results) {
    console.log(results);
});

// 返回结果
{ id: 1,
  title: 'python',
  desc: 'pythonnnnnnnnnnnnnn',
  finish: 2019-02-01T22:22:22.000Z,
  createdAt: 2019-05-09T18:18:12.000Z,
  updatedAt: 2019-05-09T18:18:15.000Z }

then格式化:

sequelize.query("select * from projects where id=?", {
    replacements: [1],
    type: sequelize.QueryTypes.SELECT
}).then(function (results) {
    console.log(results);
});

// 返回结果
[ { id: 1,
    title: 'python',
    desc: 'pythonnnnnnnnnnnnnn',
    finish: 2019-02-01T22:22:22.000Z,
    createdAt: 2019-05-09T18:18:12.000Z,
    updatedAt: 2019-05-09T18:18:15.000Z } ]

相关文章

网友评论

      本文标题:sequelize中spread和then的区别

      本文链接:https://www.haomeiwen.com/subject/tbkooqtx.html