搜索

首页  >  问答  >  正文

node.js - 想问下sequelize怎么同步查询啊?因为要查比较多的内容

天蓬老师天蓬老师2786 天前647

全部回复(3)我来回复

  • 大家讲道理

    大家讲道理2017-04-17 15:54:51

    • findeOne返回的是一个promise, 你上面的代码执行有用???

    const [sysnotice, sysactivity] = await Promise.all([db.sys_news.findOne(),  db.sysactivity.findOne()]);
    res.render("index", {
       sysnotice: sysnotice,
        sysactivity:sysactivity
    });
    • 如果不用await,就用下面的code

    Promise.all([db.sys_news.findOne(),  db.sysactivity.findOne()]).then(result => {
        const [sysnotice, sysactivity] = result;
        res.render("index", {
          sysnotice: sysnotice,
          sysactivity:sysactivity
        });  
    }).catch(error => console.error(error));
    • 如果数组很多的话,利用其它的方法返回一个数据,不要一个一个手动的array里面

    回复
    0
  • PHP中文网

    PHP中文网2017-04-17 15:54:51

    可以用bluebird的map方法

    回复
    0
  • 迷茫

    迷茫2017-04-17 15:54:51

    ES6

    采用co模块

    const co = require('co');
    
    co(function *(){
        let sysnotice = yield db.sys_news.findOne();
        let sysactivity = yield db.sysactivity.findOne();
        res.render("index", {
            sysnotice: sysnotice,
            sysactivity:sysactivity
        });
    })

    ES5
    采用bluebird模块

    var Promise = require('bluebird');
    
    Promise.all([db.sys_news.findOne(),  db.sysactivity.findOne()]).then(function(results){
        res.render("index", {
            sysnotice: results[0],
            sysactivity:results[1]
        });
    })

    回复
    0
  • 取消回复