等到SQL查询完成NodeJS SQLite 3

时间:2017-05-01 02:20:45

标签: javascript node.js sqlite

我目前正在使用SQLite 3,而且我正在运行一个运行回调函数的查询。此回调函数将查询的所有结果存储在函数级变量中,以便稍后在函数中进行访问。回调以及查询似乎使函数的后半部分运行从而使函数级变量为空。有没有办法在查询完成后运行函数的其余部分?

{{1}}

2 个答案:

答案 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

    });