diesen Code Betrachten (verkürzt)Werte von verschachtelten Funktionen in Javascript Rückkehr
function getSecret() {
db.transaction(
function (transaction) {
transaction.executeSql(
'SELECT * FROM table LIMIT 1;',
null,
function(transaction, result) {
var row = result.rows.item(0);
var secret = row.secret;
return secret;
}, errorHandler
);
}
)
}
Wie würde ich den Wert von Geheimnis um die Hauptfunktion zurückkehren? Ich habe diese Antwort gelesen Return value from nested function in Javascript
und versuchte, diese
function getSecret() {
db.transaction(
function doSql(transaction) {
transaction.executeSql(
'SELECT * FROM table LIMIT 1;',
null,
function(transaction, result) {
var row = result.rows.item(0);
var secret = row.secret;
return secret;
}, errorHandler
);
}
)
return doSql;
}
Doch dies funktionierte nicht.
Danke!
Ist die Datenbankoperation nicht asynchron? Ich bin mir ziemlich sicher, dass es so ist, und deshalb kann die Lösung hier unmöglich funktionieren. Die Rückruffunktion "Erfolg" wird aufgerufen, wenn die Abfrage abgeschlossen ist, während die äußere Funktion unmittelbar nach dem Start der Abfrage zurückgegeben wird *. – Pointy
Wie funktioniert das, wenn es asynchron ist? – Madhusudhan
wurde dieses "asynchrone" Problem jemals beantwortet? – Black