2
我想使用SQLite返回SQL查詢的結果。 查詢工作正常,我可以在executeSql函數內輸出結果。但是當我嘗試從我的主函數(returnSQLArray)到達數組時,它是未定義的。 我該如何解決這個問題?返回executeSQL函數
我在另一個函數中調用returnSQLArray,我需要查詢的結果。
代碼:
function returnSQLArray(str)
{
var db = window.openDatabase("Database", "1.0", "Name", 200000);
var result = [];
db.transaction(
function (tx, results) {
tx.executeSql(str, [], function(tx, rs) {
for(var i=0; i<rs.rows.length; i++) {
var row = rs.rows.item(i)
result[i] = {
id: row['id']
}
}
console.log(result[0].id); //Returns the id
});
}
);
console.log(result[0].id); //Undefined
}
謝謝
我很擔心,這是如此。無論如何要解決這個問題嗎?我見過一些解決方案,人們使用setTimeout方法來避免異步問題。有沒有更好的辦法? – user1698462
有沒有一個原因,你不能只做回調內所需的所有工作? – EkoostikMartin
我必須在我稱之爲函數的地方使用結果數組。示例:在一個名爲getPersons的函數中,我想調用returnSQLArray('SELECT * FROM PERSONS'),然後在函數內部使用該數組。 我不能從我的回調函數中返回它,對吧? – user1698462