搜尋

首頁  >  問答  >  主體

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

天蓬老师天蓬老师2786 天前645

全部回覆(3)我來回復

  • 大家讲道理

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

    • findeOne回傳的是一個promise, 你上面的程式碼執行有用? ? ? findeOne返回的是一个promise, 你上面的代码执行有用???

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

    • 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));
    • 如果不用await,就用下面的code

    • rrreee
    🎜🎜如果數組很多的話,利用其它的方法回傳一個數據,不要一個一個手動的array裡面🎜🎜🎜

    回覆
    0
  • PHP中文网

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

    可以用bluebird的map方法

    回覆
    0
  • 迷茫

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

    ES6

    採用co模組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]
        });
    })

    ES5
    採用bluebird模組🎜 rrreee

    回覆
    0
  • 取消回覆