我正在使用 PhoneGap 和 SQLite 数据库。
我尝试这样的事情:
我有一个函数 useSavedThing():
function useSavedThing() {
alert("BEFORE getSavedThing()");
getSavedThing();
alert("AFTER getSavedThing()");
}
和一个函数 getSavedThing():
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;
}
}
问题是当函数 getSavedThing() 被调用时,只有前两个警报 (alert("ONE"), alert("TWO)) 发出但随后警报 ("AFTER getSavedThing ()") 被调用。
但是我希望所有费用警报(“ONE”),警报(“TWO”),警报(“THREE”)警报(“FOUR”)警报(“FIVE”),警报(“SIX”),在警报之前发出("在 getSavedThing() 之后"); 出现。
警报的顺序应该是:
- alert("在 getSavedThing() 之前");
- 警报(“一个”);
- 警报(“两个”);
- 警报(“三个”);
- 警报(“四”);
- 警报(“五”);
- 警报(“六”);
- alert("在 getSavedThing() 之前");
有人能帮我吗?