Web-SQL-SELECT-Transaktion Rückgabewert

Ich versuche, eine Funktion aufzurufen, WÄHLT Werte aus meiner Web-SQL-Datenbank. Ich möchte zurück, die AUSGEWÄHLTEN Werte in eine variable innerhalb der übergeordneten Funktion. Aber, die variable wird immer leer, egal, ob es global ist oder nicht.

Als Sie in der Lage zu sehen, die Konsole.melden Sie innerhalb der selectRow Funktion protokolliert die richtigen Werte aus der Datenbank Abfrage, aber die Konsole.Protokoll zeigt bis leer, in der initDB-Funktion.

Ich habe auch bemerkt, dass die leere log-zeigt sich vor der Anmeldung innerhalb der selectRow Funktion. Ich habe Foren gefunden, wo Leute reden, Datenbank-Transaktionen asynchron. Ich verstehe, dass dies ist, warum meine variable zurückgegeben wird, leer ist. Jedoch, nachdem ich meinen Kopf gegen die Wand, viele Male, die ich noch nicht finden können, ein Weg, dies zu umgehen asynchron-Problem.

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

InformationsquelleAutor Tyler Buchea | 2011-10-19

Schreibe einen Kommentar