2
SQLite를 사용하여 SQL 쿼리의 결과를 반환하려고합니다. 쿼리가 제대로 작동하고 결과를 executeSql 함수 내에 출력 할 수 있습니다. 하지만 내 주요 함수 (returnSQLArray)에서 배열에 도달하려고하면 정의되지 않습니다. 이 문제를 어떻게 해결합니까?return 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