Я довольно новичок в NodeJS и JavaScript в целом. Вот мой сценарий:Переменная вне обратного вызова в NodeJS
var data = [];
client.query(
'SELECT * FROM cds',
function selectCb(err, results, fields) {
if (err) {
throw err;
}
console.log(results);
console.log(fields);
data.push(results);
}
);
console.log(data);
Как я могу получить доступ к results
(или data
) вар вне обратного вызова? Я не хочу писать тонну обратных вызовов внутри друг друга при выполнении запросов.
Я не уверен, насколько я понимаю. Точка этих обратных вызовов заключается в том, что остальная часть кода может выполняться и не должна ждать запроса. Таким образом, предполагая, что 'results' является элементом' data' в вашей последней строке, не имеет большого смысла, потому что запрос еще не завершен. – pimvdb
Я понял, что мой дизайн был неправильным и надеялся на лучшее решение. Вы знаете, как я могу получить данные из запроса с помощью node-mysql без использования обратного вызова? – mikelbring
Похоже, вам нужен синхронный код, так что функция ждет завершения запроса. Я не уверен, что это лучший подход. Есть ли причина, по которой вы не просто выполняете зависимости запроса в обратном вызове? – pimvdb