我目前正在尝试在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 } ]