如何在sequelize中返回数组中的多个Promise?

时间:2017-10-31 11:18:10

标签: javascript sql arrays promise sequelize.js

我目前正在尝试在Sequelize中运行多个查询,并将一组promises返回到调用函数的位置。如何将带有promise的数组作为promise返回给函数,以便以后可以解决?

调用查询的函数:

router.get('/barchart', (req, res) => {
  store.getBarchartData().then(session => {
    res.json(session);
  })
})

查询功能:

getBarchartData(data) {
    let promises = [];
    let curr = new Date();
    let start = startOfWeek(curr);
    let date = start.getDate();
    let month = start.getMonth() + 1;
    let year = start.getFullYear();
    let startDateString = year + "-" + month + "-" + date;
    let queryDate;



     for(i = 0; i < 5; i++) {
          startDateString = addDays(startDateString, 1);
          queryDate = format(startDateString, 'YYYY-MM-DD');
          promises.push(models.session.findAll({
            where: { date: { [Op.eq]: queryDate }  },
            attributes: [[Sequelize.fn('COUNT', Sequelize.col('id')), 'y']]
          }))
        }
        console.log(promises);
        return Promise.all(promises);
      }

当查询运行时,它会返回一个承诺数组,下面我想要返回到另一个函数:

[ Promise {
    _bitField: 0,
    _fulfillmentHandler0: undefined,
    _rejectionHandler0: undefined,
    _promise0: undefined,
    _receiver0: undefined },
  Promise {
    _bitField: 0,
    _fulfillmentHandler0: undefined,
    _rejectionHandler0: undefined,
    _promise0: undefined,
    _receiver0: undefined },
  Promise {
    _bitField: 0,
    _fulfillmentHandler0: undefined,
    _rejectionHandler0: undefined,
    _promise0: undefined,
    _receiver0: undefined },
  Promise {
    _bitField: 0,
    _fulfillmentHandler0: undefined,
    _rejectionHandler0: undefined,
    _promise0: undefined,
    _receiver0: undefined },
  Promise {
    _bitField: 0,
    _fulfillmentHandler0: undefined,
    _rejectionHandler0: undefined,
    _promise0: undefined,
    _receiver0: undefined } ]

0 个答案:

没有答案