Web SQL SELECT valor de retorno da transação

Estou tentando chamar uma função que SELECTS valores do meu banco de dados SQL da Web. Gostaria de retornar os valores SELECTED em uma variável dentro da função pai. Mas, a variável sempre retorna em branco, seja global ou não.

Como você poderá ver o console.log na função selectRow registra os valores corretos na consulta ao banco de dados, mas o console.log aparece em branco na função initD

Também notei que o log em branco aparece antes do log na função selectRow. Encontrei fóruns em que as pessoas estão falando sobre transações de banco de dados serem assíncronas. Entendo que é por isso que minha variável retornada está em branco. No entanto, depois de bater minha cabeça contra a parede muitas vezes, ainda não consigo encontrar uma maneira de contornar esse problema assíncron

/** 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;
}

questionAnswers(3)

yourAnswerToTheQuestion