问题描述
我当前的代码:https://pastebin.com/hgt2DwSY
θ
" Î
解决方法
在这种情况下,我可能会承诺您的查询功能
const mysql = require('mysql2');
let pool = mysql.createPool({
connectionLimit : 10,host : 'localhost',user : 'user',password : 'passwd',database : 'database',waitForConnections: true,queueLimit: 0
});
client.mysqllocal = function localmysql(mySQL_db,mySQL_query) {
return new Promise((resolve,reject) => {
let rows;
pool.getConnection(async function(err,conn) {
if (err){
reject(err);
}
conn.changeUser({database : mySQL_db},function(err) {
if (err){
reject(err);
}
});
conn.query(mySQL_query),function (error,results,fields) {
rows = results
}
conn.release()
})
resolve(rows);
});
}
client.mysqllocal('database','SELECT * FROM `guild_config` WHERE `guild_id` = "guildid"').then(func => console.log(func));
const mysql = require('mysql2');
let pool = mysql.createPool({
connectionLimit : 10,database : 'database'
});
client.getLocal = (db,query,callback) => {
pool.getConnection((err,con) => {
if(err) reject(err);
con.changeUser({
database: db
},(err) => { if(err) reject(err) });
con.query(query,(error,result,fields) => {
return callback(result);
})
})
}
client.getLocal('dbname','query',(result) => {
console.log(result)
})
我在这里做的是指定一个函数inside一个函数,这样我就可以处理查询给我的数据,而且不需要异步! Promises 更受欢迎,但我认为我的回调更灵活,初学者在使用 Promises 时容易混淆,就像我一样!我会说像上面的问题一样使用承诺。