Возвращаемое значение транзакции 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;
}

Ответы на вопрос(3)

Ваш ответ на вопрос