Каков наилучший способ структурировать обратные вызовы jquery?

Я новичок в jquery и недавно был поражен, насколько мощны эти обратные вызовы. Но здесь у меня есть немного логики, и я не уверен, что лучший способ. По сути, я получил несколько таблиц в базе данных web sql в chrome. Мне нужно будет пройти, скажем, таблицу A, таблицу B и таблицу C. Мне нужно отправить каждую строку таблицы на сервер. Каждая строка представляет набор сложной логики и URL-адреса данных, и они должны быть представлены в порядке A -> B -> C.

Обычный способ Java будет:

TableA.SubmitToServer()
{
    query table A;
    foreach(row in tableA.rows)
    {
        int nRetID = submitToServer(row);
        //do other updates....
    }
}

Аналогично для таблицы B и таблицы 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? Все они должны иметь одинаковую логику, и их можно вызывать только после того, как все сделано из таблицы A. Итак, каков наилучший способ сделать это в JQuery?

Спасибо

0 ответов

Другие вопросы по тегам