Возвращаемое значение транзакции Web SQL SELECT
Я пытаюсь вызвать функцию, которая выбирает значения из моей базы данных Web SQL. Я хотел бы вернуть значения SELECTED в переменную внутри родительской функции. Но переменная всегда возвращает пустое значение, независимо от того, глобально оно или нет.
Как вы сможете увидеть console.log внутри, функция selectRow записывает правильные значения из запроса к базе данных, но console.log отображается пустым в функции initDB.
Я также заметил, что пустой журнал отображается перед журналом внутри функции selectRow. Я нашел форумы, где люди говорят об асинхронных транзакциях базы данных. Я понимаю, что именно поэтому моя возвращаемая переменная пуста. Однако, после того, как я много раз ударился головой о стену, я все еще не могу найти способ обойти эту асинхронную проблему.
/** Initialize Database **/
function initDB(){
createTable();
var pleaseWork = selectRow("SELECT * FROM planets;");
console.log(pleaseWork);
}
/** Select Row from Table **/
function selectRow(query){
var result = [];
db.transaction(function (tx) {
tx.executeSql(query, [], function(tx, rs){
for(var i=0; i<rs.rows.length; i++) {
var row = rs.rows.item(i)
result[i] = {
id: row['id'],
name: row['name']
}
}
console.log(result);
}, errorHandler);
});
return result;
}