Мне нужно было бы узнать немного больше о базе данных и значении brawlID, но вы не используете return с обещаниями, вместо этого вы используете разрешение и отклонение, также вы возвращаете обещание, не используете ли вы асинхронный. Вот отредактированный пример. Примечание. Я использую mysql.format для передачи переменной в запрос, это защитит от внедрения кода.
Кроме того, я бы подумал, что вы будете использовать оператор where, если только у вас нет таблицы для каждого brawlID, но было бы разумно, если brawlID является столбцом в таблице. Я изменил функцию, чтобы принимать значение переданного параметра brawID вместо ссылки на глобальную переменную.
const mysql = require("mysql2/promise");
const mysqlconfig = {
host: "localhost",
user: "youruser",
password: "yourpassword"
database: "yourdb"
multipleStatements: true
};
const con = mysql.createConnection(msqlconfig);
function to (promise) {
return promise
.then(val => [null, val])
.catch(err => [err]);
}
function PullRollStatus(brawlID){
return new Promise((resolve,reject)=>{
let sql = `SELECT * FROM brawlid WHERE brawlID=?`;
mysql.format(sql,brawlID);
con.query(sql, (error, rows, fields) => {
if (error) {
reject(error);
} else {
let rollStatus = [];
for (let row of rows) {
rollStatus.push(row.Bakuganrolled)
}
console.log(rollStatus);
resolve(rollStatus);
}
});
});
}
let brawlIDtoCheck = 1;
let [err,rolledcheck] = await to(PullRollStatus(brawlIDtoCheck));
if (err) {
console.log("encountered err",err);
}
console.log(rolledcheck)