У меня проблемы с получением возвращаемого значения из асинхронной функции в JavaScript.Я пробовал несколько разных подходов, основанных на других постах, найденных здесь - Как правильно вернуть результат mysql с Node? и здесь Сохранять строки запроса mysql в переменной для последующего использования .Мой текущий код выглядит следующим образом.
function get_info(callback) {
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'xxxxxxx',
user: 'bob',
password: 'bob',
database: 'xxxxxx'
});
connection.connect(function (err) {
if (err) throw err;
connection.query("SELECT Name FROM webform", function (err, result) {
if (err) throw err;
return callback(result);
});
connection.end();
});
}
var newli = get_info(function(result){
stuff_i_want = result;
return stuff_i_want;
});
console.log(newli);
Я ожидаю, что console.log(newli)
напечатает значение stuff_i_want
, которое я возвращаю из функции get_info()
, но вместо этого я получаю неопределенное значение.Я пытаюсь получить значение result
из connection.query
, хранящегося в переменной, которую я могу использовать позже.