js调用doQuery操作sqliteDB如何设置成同步
最近在开发离线程序的时候,用到了sqliteDB.js
里面的方法可以方便的操作sqlite数据库如下:
doQuery: function (sql, callback)
但是问题来了,这个是异步的方式取数据,因此他的后面不能放其他JS语句,否则可能会先执行后面。
但是for循环里面如果调用这个方法,该怎么办呢。。。
因此想问问各位高手是否有把它设置成同步的方法呢? js sqlite
[解决办法]
這樣行不行
if(null != data && 0 != data[0]){
lists(data);
}
function lists(data, index) {
var i = index
[解决办法]
0;
var l = data.length;
var staffNo, sql;
if(i < l) {
staffNo = data[i]
sql = "select COUNT(a.objectAnswer) answerCount from MassPaperResultRecord a ";
sql += " where 1 = 1 and a.status = 1 and a.massCode = 33 ";
sql += " and a.objectClass = 'S' and a.objectDept = '101' and a.objectStaffNo = " + staffNo;
db.doQuery(sql,function(r){
lists(data, i + 1);
});
}
}
var sql = '第一句sql语句';
var max = 10, now = 0;
db.doQuery(sql, callback);
function callback(r) {
now++;
//根据拼装下一个sql语句
if (now < max) db.doQuery(sql, callback);///////未达最大下标继续查询
}