【问题标题】:How to return a result from a SQLite SELECT? [duplicate]如何从 SQLite SELECT 返回结果? [复制]
【发布时间】:2014-09-13 14:25:20
【问题描述】:

我正在尝试将 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);

【问题讨论】:

    标签: javascript cordova sqlite android-sqlite


    【解决方案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']);
    }
    

    【讨论】:

    • 手套变量不起作用。输出仍然是“”,选项 2 我想在我的代码中进一步使用结果.. 将它分配给一个变量并在 deviceready 中进一步使用它(我的所有代码都放置在其中)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 2013-04-27
    • 2021-02-23
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多