【发布时间】:2011-11-18 23:20:39
【问题描述】:
总的来说,我对 NodeJS 和 JavaScript 还很陌生。这是我的脚本:
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的一个元素没有多大意义,因为查询尚未完成。 -
我认为我的设计是错误的,并希望有更好的解决方案。你知道如何在不使用回调的情况下使用 node-mysql 从查询中获取数据吗?
-
听起来你想要同步代码,让函数等待查询结束。我不确定这是最好的方法。你有什么理由不只是在回调中执行查询的依赖项?
-
好吧,我可能会在我的应用程序开始时一直编写 2-3 个查询。我不想深入嵌套到回调中。
标签: javascript node.js closures