我是jquery的新手,最近我们惊讶于这些回调是多么强大。但在这里我有一些逻辑,我不确定最好的方法是什么。 基本上,我在chrome的web sql数据库中得到了一堆表。我需要查看表A,表B和表C.我需要将表的每一行提交给服务器。每行代表一堆复杂的逻辑和数据网址,它们必须按照A - >的顺序提交。 B - > C.
常规的Java方式是:
TableA.SubmitToServer()
{
query table A;
foreach(row in tableA.rows)
{
int nRetID = submitToServer(row);
//do other updates....
}
}
类似于tableB和表C.
然后打电话:
TableA.SubmitToServer();
TableB.SubmitToServer();
TableC.SubmitToServer();
//that is very clear and easy.
但是在JQuery中,它可能会是:
db.Transaction(function (tx){
var strQuery = "select * from TableA";
tx.executeSql(strQuery, [], function (tx, result) {
for(i = 0 ; i < result.rows.length; i++) {
submitTableARowToServer(tx, result.rows.getItem(i), function (tx, result) {
//do some other related updates based on this row from tableA
//also need to upload some related files to server...
});
}
},
function errorcallback() ...
});
如您所见,已经有足够的嵌套回调。现在,我应该在哪里放置TableB和tableC的进程?它们都需要具有相似的逻辑,只有在从TableA完成所有操作后才能调用它们。那么,在JQuery中执行此操作的最佳方法是什么?
由于