My code is:
let users: number [] = [1, 2, 3]
users.forEach(async (usernr: number) => {
console.log("nr:" + usernr)
await connection.query("select count(*) from documents where userid = " + usernr.toString(), "", function (err, result) {
if (err) {
console.log("err: ", err, " nr: ",usernr);
return;
}
console.log("result: ", result, " nr: ",usernr);
});
})
my result is:
nr:1
nr:2
nr:3
result: [ RowDataPacket { 'count(*)': 10 } ] nr: 1
result: [ RowDataPacket { 'count(*)': 20 } ] nr: 2
result: [ RowDataPacket { 'count(*)': 30 } ] nr: 3
I tried make the query with 'await' synchronous, but this not work. Where is my mistake? How can I do this synchron?
I try do envelope the connect.query in a function that return a promise like:
const queryPromise = (
connection: Connection,
query: string,
value: (string | number) []
) => {
return new Promise(async (resolve, reject) => {
connection.query(query, value, function (err, result) {
if (err) {
console.log("err: ", err, " result: ", result);
}
return reject(err);
}
return resolve(result);
});
});
}
and then
await queryPromise(connection, mySQLString, values)
It not work too!!! :(