我目前正在使用SQLite 3,而且我正在运行一个运行回调函数的查询。此回调函数将查询的所有结果存储在函数级变量中,以便稍后在函数中进行访问。回调以及查询似乎使函数的后半部分运行从而使函数级变量为空。有没有办法在查询完成后运行函数的其余部分?
{{1}}
答案 0 :(得分:1)
这就是节点异步功能如何工作的本质。以下是关于如何控制和组织事情发生情况的精彩内容:Control flow
基本上,您将不得不处理某些级别的嵌套或在更多函数中分离事物。
var results = [];
var query = conn.query(q, function(error, result){
for (var i = 0; i < result.rowCount; i++) {
results.push(result.rows[i]);
}
console.log(results); // results is not empty here
// Do whatever you want next here
} );
或
var results = [];
var query = conn.query(q, function(error, result){
for (var i = 0; i < result.rowCount; i++) {
results.push(result.rows[i]);
}
console.log(results); // results is not empty here
continue();
});
function continue() {
// Do the next things here
}
答案 1 :(得分:0)
var results = [];
var query = conn.query(q);
query.then(function(error, result){
for (var i = 0; i < result.rowCount; i++) {
results.push(result.rows[i]);
}
console.log(results); // results is not empty here
});