[英]alert fire before the db transaction statement in phonegap
db.transaction(function (tx) {
tx.executeSql('SELECT userid FROM user', [], function (tx,results) {
var len = results.rows.length;
for (var i = 0; i < len; i++) {
userId = results.rows.item(i).userid;
alert(results.rows.item(i).userid );
}
}, dbErrorHandler);
}, dbErrorHandler);
alert(userId);
在上面的代碼中,最后一個警報顯示在前一個db事務語句之前。
為什么會這樣發生? 有人可以建議解決方案嗎?
這是一個異步調用,您需要在成功回調中顯示警報:
db.transaction(selectDB, errorCB, successCB);
function selectDB(tx) {
tx.executeSql('SELECT userid FROM user', [], function (tx,results) {
var len = results.rows.length;
for (var i = 0; i < len; i++) {
userId = results.rows.item(i).userid;
alert(results.rows.item(i).userid );
}
}, dbErrorHandler)
}
// Transaction error callback
//
function errorCB(err) {
alert(err);
dbErrorHandler;
}
// Transaction success callback
//
function successCB() {
alert(userId);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.