Javascript 函数在其他函数中返回未定义

标签 javascript function cordova

我有一个函数,我想在其他函数中调用它来获取 API key 。如果我这样做,我的返回值是未定义的。

我该如何解决这个问题?

function getApiKey(callback) {

    var db = app.db;

    db.transaction(
        function (tx) {
            tx.executeSql("SELECT api_key FROM settings WHERE id='1'", [], function (tx, result) {
                var apiKey = result.rows.item(0).api_key;

                alert(apiKey); // here it works

                return apiKey;

            });
        }
    );
}

function getData() {

    var myKey = getApiKey();

    alert(myKey); // undefined

}

最佳答案

您有一个回调作为参数传递,请使用它!您无法从异步调用返回!

function getApiKey(callback) {
    var db = app.db;
    db.transaction(function (tx) {
        tx.executeSql("SELECT api_key FROM settings WHERE id='1'", [], function (tx, result) {
            var apiKey = result.rows.item(0).api_key;
            callback(apiKey);
        });
    });
}

function getData() {
    getApiKey(function(key) {
        var myKey = key;

        /* Any logic with myKey should be done in this block */
    });
}

关于Javascript 函数在其他函数中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32098317/

相关文章:

javascript - 从作为 promise 返回的 Angular 查询参数创建测试

javascript - 在函数中使用查询到的json数据

function - Corona SDK - 我们如何将外部函数连接到 main.lua?

c - 一个用 C 语言计算 NxM 数组中 0 到 9 的数字个数的程序?

android - 构建工具错误 "Please install the Android build tools version 19.1.0 or higher"

android - 在 android2.3.3 上使用 jquery 的 ssn 掩码

ios - PDF 未附加 phonegap 电子邮件编辑器

javascript - React - 无法设置未定义的属性

javascript - 如何选择输入元素? (文本突出显示)

php - PHP错误处理- “missing argument for errorHandler”