Как console.log выводит запросы после всех sql запросов? Я использую mysql соединение. Теперь единственный pu sh (результаты) происходит после основного console.log (ключи). Я хочу буферизовать результаты отдельных запросов и после этого использовать их другими способами.
db.query(
`INSERT INTO orders VALUES (?, ?, (SELECT SUM(currentPrice) FROM games WHERE games.id in (?)), 'pending', "?")`,
[md5(Math.random() * 99999), email, ids, ids],
async (error, results) => {
if (error) {
console.log(error);
res
.status(400)
.json({ message: "При выполнении заказа возникла ошибка" });
}
if (results) {
const keys = [];
await ids.forEach(async (id) => {
await db.query(
"SELECT * FROM gameworld.keys WHERE gameId = ? and used = 0 LIMIT 1",
id,
async (error, results) => {
if (error) {
console.log(error);
}
if (results) {
console.log(results);
await keys.push(results[0]);
await db.query(
"UPDATE gameworld.keys SET used = 1 WHERE id = ?",
results[0].id
);
}
}
);
});
await db.query(
"UPDATE order SET status = 'delivered' WHERE email = ?",
email
);
await console.log(keys);