美文网首页
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