Я понимаю, что это очень старый вопрос, но я нашел его, когда искал способ обработки асинхронных вызовов SQLite в JavaScript. И вопрос такой же, как у меня, и я нашел лучший ответ (Расширяет выбранный ответ, используя замыкания)
Моя версия вашей функции getData выглядит следующим образом:
function get_option (option, get_option_callback){
if (db === null){
open_database();
}
db.transaction(function (tx) {
tx.executeSql("SELECT rowid,* FROM app_settings WHERE option = ? ", [option],
function(tx, result){
item = result.rows.item(0);
get_option_callback(item.value);
return;
}
}, sql_err);
});
}
Затем, чтобы вызвать метод, я бы использовал:
get_option("option name", function(val){
// set the html element value here with val
// or do whatever
$('input[name="some_input"]').val(val);
});