【发布时间】:2013-02-01 09:30:03
【问题描述】:
我正在使用 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”),发出在警报之前("AFTER getSavedThing()");应用程序。
警报的顺序应该是:
- alert("BEFORE getSavedThing()");
- alert("ONE");
- 警报(“两个”);
- 警报(“三”);
- 警报(“四”);
- 警报(“五”);
- 警报(“六”);
- alert("BEFORE getSavedThing()");
有人可以帮我吗?
【问题讨论】:
-
你能告诉我们任何 firebug 或类似的输出吗?我假设 getSavedThing() 中的函数应该在它之外。
标签: javascript html sqlite cordova