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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie ändern Ihre
selectRow()
Funktion akzeptiert eine callback als parameter, was es wird, rufen Sie mit dem Ergebnis anstelle der Rückgabe das Ergebnis:Rückrufe sind das schwierigste Konzept zu gewöhnen, um beim starten mit javascript
InformationsquelleAutor nnnnnn
dies ist schwierig, da Sie eine verzögerte Reaktion
Sie müssen warten, bis der SQL-Antwort, bevor die Daten zurückgeben,
deshalb übergeben müssen Sie eine callback-Funktion
InformationsquelleAutor Lucas Matos
Finden Sie unter der Website: groups.google.com/forum/?fromgroups#!Thema/phonegap/YCRt2HducKg
}
Zusammenhang mit den folgenden HTML:
mit der Tabelle: Vereint
A+
InformationsquelleAutor Alain