使用PhoneGap和JavaScript的SQlite数据库
我正在使用PhoneGap和SQLite数据库 我试着这样做: 我使用了一个函数savedthing(): 和一个函数getSavedThing(): 问题是,当调用函数getSavedThing()时,只会发出前两个警报(警报(“一”)、警报(“两”),然后调用警报(“getSavedThing()之后”) 但我希望所有费用警报(“一”)、警报(“二”)、警报(“三”)警报(“四”)警报(“五”)、警报(“六”),在警报(“getSavedThing()之后”)之前发布;上诉 警报的顺序应为:使用PhoneGap和JavaScript的SQlite数据库,javascript,html,sqlite,cordova,Javascript,Html,Sqlite,Cordova,我正在使用PhoneGap和SQLite数据库 我试着这样做: 我使用了一个函数savedthing(): 和一个函数getSavedThing(): 问题是,当调用函数getSavedThing()时,只会发出前两个警报(警报(“一”)、警报(“两”),然后调用警报(“getSavedThing()之后”) 但我希望所有费用警报(“一”)、警报(“二”)、警报(“三”)警报(“四”)警报(“五”)、警报(“六”),在警报(“getSavedThing()之后”)之前发布;上诉 警报的顺序应为:
有人能帮我吗?数据库操作是异步执行的。如果要在最后一次数据库操作后执行
警报(“getSavedThing()”)
,则需要从回调函数getIt()
调用它
您可以使用PhoneGap进行数据访问,您会发现它非常容易使用:
var db = new MyDB();
//query all users
var users = db.Users.toArrary(callback);
你能给我们看看firebug或类似版本的输出吗?我假设getSavedThing()中的函数应该在它之外。就是这样!这就是为什么你使用stackoverflow:-)喜欢它!非常感谢!
function getSavedThing(){
alert("ONE");
var db = window.openDatabase("Database", "1.0", "Database", 200000);
db.transaction(populateDB, errorCB, successCB);
alert("TWO");
function populateDB(tx) {
alert("THREE");
}
function errorCB(tx, err) {
alert("Error processing SQL: " + err);
}
function successCB() {
alert("FOUR");
db.transaction(getData);
}
function getData(tx) {
alert("FIVE");
tx.executeSql('SELECT * FROM SETTINGS', [], getIt, errorCB);
}
function getIt(tx, results) {
alert("SIX");
var savedthing = results.rows.item(0).data;
}
}
function useSavedThing() {
alert("BEFORE getSavedThing()");
var afterGet = function(){
alert("AFTER getSavedThing()");
}
getSavedThing( afterGet ); /*pass the callback function to getSavedThing*/
}
function getSavedThing( callback ){
alert("ONE");
var db = window.openDatabase("Database", "1.0", "Database", 200000);
db.transaction(populateDB, errorCB, successCB);
alert("TWO");
function populateDB(tx) {
alert("THREE");
}
function errorCB(tx, err) {
alert("Error processing SQL: " + err);
}
function successCB() {
alert("FOUR");
db.transaction(getData);
}
function getData(tx) {
alert("FIVE");
tx.executeSql('SELECT * FROM SETTINGS', [], getIt, errorCB);
}
function getIt(tx, results) {
alert("SIX");
var savedthing = results.rows.item(0).data;
callback.call(); /*execute the callback function*/
}
}
var db = new MyDB();
//query all users
var users = db.Users.toArrary(callback);