Javascript web sql中的嵌套选择查询
我无法找到一个明确的答案,异步web sql真的让我大吃一惊。如何使用基于父选择查询的数据执行选择查询?以下是一段我认为有效但实际上无效的片段:Javascript web sql中的嵌套选择查询,javascript,html,web-sql,Javascript,Html,Web Sql,我无法找到一个明确的答案,异步web sql真的让我大吃一惊。如何使用基于父选择查询的数据执行选择查询?以下是一段我认为有效但实际上无效的片段: db.transaction(function(tx){ tx.executeSql('SELECT a, b FROM mytable WHERE c=5', [], function(tx,results) { var i = results.rows.length; while(i--){
db.transaction(function(tx){
tx.executeSql('SELECT a, b FROM mytable WHERE c=5', [], function(tx,results) {
var i = results.rows.length;
while(i--){
var votes = results.rows.item(i).a;
var marker = results.rows.item(i).b;
tx.executeSql('SELECT a FROM mytable WHERE c=?', [marker], function(tx,aresults) {
if(!aresults){
//do something
} else {
myScore += (votes*100)/aresults.rows.item(0).a;
}
}(marker));
}
nextFunction();
});
}, function(){onError});
试试这个:
function firstQuery(){
db.transaction(function(tx){
tx.executeSql('SELECT a, b FROM mytable WHERE c=5', [],
function(tx,results) {
var i = results.rows.length;
while(i--){
secondQuery(results.rows[i]);
}
});
}, function(){onError});
}
function secondQuery(responseQuery){
var votes = responseQuery.a;
var marker = responseQuery.b;
db.transaction(function(tx){
tx.executeSql('SELECT a FROM mytable WHERE c=?', [marker], function(tx,aresults) {
if(!aresults){
//do something
} else {
myScore += (votes*100)/aresults.rows.item(0).a;
}
}(marker));
}, function(){onError});
}
看起来还可以,但最终结果不是回调。