Mysql 使用多个线程执行多个sequelize查询

Mysql 使用多个线程执行多个sequelize查询,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我目前正在使用wait逐个执行所有查询,因此在res.send()之前获取所有数据 我想要的是,每个查询都由不同的线程执行,并在res.send()之前等待,这样可以节省执行时间 我相信有一个更好的解决方案使用Sequelize。虽然这与多线程并不完全相同,但您正在寻找的解决方案是异步执行的并发查询。对于结果互不依赖的任何异步I/O,这确实是最好的解决方案 使用Promise.all()同时解析所有查询。您可以使用数组解构器获取从每个承诺返回的每个值 当变量值不变时,最好使用const而不是va

我目前正在使用wait逐个执行所有查询,因此在res.send()之前获取所有数据

我想要的是,每个查询都由不同的线程执行,并在res.send()之前等待,这样可以节省执行时间


我相信有一个更好的解决方案使用Sequelize。

虽然这与多线程并不完全相同,但您正在寻找的解决方案是异步执行的并发查询。对于结果互不依赖的任何异步I/O,这确实是最好的解决方案

使用
Promise.all()
同时解析所有查询。您可以使用数组解构器获取从每个承诺返回的每个值

当变量值不变时,最好使用
const
而不是
var

const-where={isActive:'Y'};
const[classes,users,calendar]=wait Promise.all([
类。findAll({where}),
Users.findAll({where}),
日历。findAll({where}),
]);
res.status(500).send({classes,users,calendar});

注意-您也有输入错误,“calendar”应该是“calendar”

谢谢它对我有效。@Faredmurtaza如果这个答案对您有效,您能将它标记为正确答案吗?谢谢
    var classes = await Classes.findAll({ where: { isActive: 'Y' } })
    var users = await Users.findAll({ where: { isActive: 'Y' } })
    var calender = await Calender.findAll({ where: { isActive: 'Y' } })

    res.status(500).send({classes, users, calender})