如何从SQLite SELECT返回结果?

时间:2014-07-22 16:32:16

标签: javascript cordova sqlite android-sqlite

我正在尝试将结果从SQLite SELECT传递给var res并显示它但在警报中我得到“未定义”。如何正确归还?

function read(key){
    app.db.transaction(function(tx) {
        tx.executeSql('SELECT value FROM MyTable WHERE key = ?',
            [key],
            function(tx, results)
            {
                return results.rows.item(0)['value']
            },                
            app.onError
        );
        return;
    });
    return;
}

res=read("pipi")
alert(res);

1 个答案:

答案 0 :(得分:1)

您无法从异步函数返回值。您需要传递一个将使用异步函数的结果执行的函数,或者使用全局变量来保存结果。

res=read("pipi") // will always return undefined

你可以声明一个全局变量和一个全局函数。

resultSelect = "";
function alertResultSelect(result){
    alert(result);
}

然后在您的function(tx, results)代码中添加

function(tx, results)
{
   //Assign the results to the global variable.
   resultSelect = results.rows.item(0)['value'];
   // OR call the global function
   alertResultSelect(results.rows.item(0)['value']);
}