У меня проблема, когда мой код не ожидает запроса на финиш sh перед продолжением, в результате чего:
>> Quote Doesnt Exists
>> Checked Amount of quotes in database
>> undefined
Это происходит менее чем за секунду, затем за ним следуют с определением переменной $ {number}, есть ли способ заставить программу ждать определения числа, прежде чем двигаться дальше?
// check if quote exists
await con.query(`SELECT * FROM quotes WHERE quote = '${args.join(" ")}'`, (err, rows) => {
if (err) console.log(err);
if (rows[0] == undefined) {
turnback = false;
return;
} else if (rows[0].quote) {
turnback = true;
return client.say(channel, `That quote is already inside of the database!`)
}
})
console.log("Quote Doesnt Exists")
// return if it hasnt already (turnback)
if (turnback == true) return;
// creating variable "number" to be defined later
var number;
// check amount of quotes in database
await con.query(`SELECT COUNT(*) AS cnt FROM quotes`, (err, rows) => {
if (err) console.log(err);
if (rows[0].cnt) {
// defining variable
number = (rows[0].cnt + 1)
} else {
number = 1
}
})
console.log("Checked Amount of quotes in database")
console.log(number)
// creating variable "succsess" to be defined later
var success;
// insert quote into database
await con.query(`INSERT INTO quotes (quote, id) VALUES ("${args.join(" ")}", "${number}");`, (err) => {
if (err) {
console.log(err)
success = false
} else {
success = true
}
})
// sending conformation to user
if (success == true) {
client.say(channel, `Successfully inserted quote #${number} into database`)
} else if (success == false) {
client.say(channel, `Something went wrong, I failed to Insert The quote into the database!`)
}