我有此代码:
conn.query('SELECT COUNT(*) AS count FROM test', (err, rows) => {
let count = rows[0].count;
console.log(count); });
我希望将值存储在全局变量中,而不是在控制台中记录计数值,以便能够在代码中的其他任何地方(查询块外部的任何地方)使用它。这怎么可能? 谢谢!
答案 0 :(得分:0)
您确实有几种方法。您要问的是以下内容:
var result;
conn.query('SELECT COUNT(*) AS count FROM test', (err, rows) => {
result = rows[0].count;
});
这将满足您的要求,但问题是conn.query
的代码是异步的,这意味着在外面,如果您想使用result
,则不知道何时使用准备。
在这些情况下,您可能可以使用一些异步管理,例如promise,因为使用全局变量不是最佳实践:
function countTests() {
return new Promise((resolve, reject) => {
conn.query('SELECT COUNT(*) AS count FROM test', (err, rows) => {
resolve(result);
});
});
}
countTests().then(result => { console.log('results:', result); });
如果要像这样分配它,甚至可以用async/await
来实现它:
const results = await countTests();
将此代码包装在async
块中