我有以下从数据库获取十六进制代码的函数
function getColour(username, roomCount) { connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result) { if (err) throw err; return result[0].hexcode; }); }
我的问题是我在回调函数中返回了结果,但getColour函数未返回任何内容。我希望getColour函数返回的值result[0].hexcode。
result[0].hexcode
在我调用getColour的那一刻,它不返回任何内容
我尝试做类似的事情
function getColour(username, roomCount) { var colour = ''; connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result) { if (err) throw err; colour = result[0].hexcode; }); return colour; }
但当然SELECT查询在返回值时已经完成 colour
colour
您只需要对回调中的db查询结果进行处理。就像。
function getColour(username, roomCount, callback) { connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result) { if (err) callback(err,null); else callback(null,result[0].hexcode); }); } //call Fn for db query with callback getColour("yourname",4, function(err,data){ if (err) { // error handling code goes here console.log("ERROR : ",err); } else { // code to execute on data retrieval console.log("result from db is : ",data); } });