Cordova SQLite - 从一系列SELECT查询中获取结果

时间:2017-09-16 09:27:22

标签: android sqlite cordova

我有一个使用SQLite数据库的Cordova移动应用程序。我正在使用cordova-sqlite-storage插件。我需要一个接一个地执行两个选择并获得结果。是否可以避免嵌套?如果是这样,怎么样?找不到任何关于如何做的例子。

P.S。我需要使用两个查询的结果退出函数

ctx.transaction(function(tx) {
    tx.executeSql("SELECT * FROM cards WHERE lastupdate > ?;", [lastSync], function(tx, rs) {
        // get the result here from first select
        tx.executeSql("SELECT * FROM events WHERE lastupdate > ?;", [lastSync], function(tx, rs) {
            // get the result from second select and return
            // return with results from both queries
        }, function(tx, error) {
            // fail
        });
    }, function(tx, error) {
        // fail
    });
});

1 个答案:

答案 0 :(得分:1)

由于您不需要第一次选择的结果,我认为您不需要嵌套。这样的事情应该有效:

var result1, result2; 
ctx.transaction(function(tx) {
    tx.executeSql("SELECT * FROM cards WHERE lastupdate > ?;", [lastSync], function(tx, rs) {
        // get the result here from first select
        result1 = ...;
    }, function(tx, error) {
        // fail
    });
    tx.executeSql("SELECT * FROM events WHERE lastupdate > ?;", [lastSync], function(tx, rs) {
        // get the result from second select and return
        result2 = ...;
    }, function(tx, error) {
        // fail
    });
}, null, function() {
    //do something with results;
});

该插件仍然应该按顺序排队并执行它们。