我有一个函数,我想在其他函数中调用它来获取 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/