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() が呼び出されると、最初の 2 つのアラート (alert("ONE")、alert("TWO)) のみが発行され、その後アラート ("AFTER getSavedThing ()") が呼び出されることです。
ただし、全経費アラート(「ONE」)、アラート(「TWO」)、アラート(「THREE」)アラート(「FOUR」)アラート(「FIVE」)、アラート(「SIX」)、アラートの前に発行してほしい("AFTER getSavedThing()"); 現れます。
アラートの順序は次のとおりです。
- alert("BEFORE getSavedThing()");
- アラート("ONE");
- アラート ("2");
- アラート("3");
- アラート("4");
- アラート("FIVE");
- アラート("6");
- alert("BEFORE getSavedThing()");
誰かが私を助けることができますか?