Откат транзакции WebSql не работает

Я использую транзакцию с несколькими запросами. Я бы хотел, чтобы транзакция выполнялась в случае сбоя одного запроса. Я читал, что мне нужно вернуть true в обратном вызове ошибки транзакции, но это не работает.

Вот код:

db.transaction(
            function(tx) {

                // First Query
                tx.executeSql("insert into groups ('name') VALUES ('TEST1')", [],
                    function(tx, results) { // Success CB
                        console.error("Q1 S");
                    },
                    function(tx, errObject) { // Error CB
                        console.error("Q1 E");
                    });

                // Second Query
                tx.executeSql("insert into groupss ('name') VALUES ('TEST2')", [],
                    function(tx, results) { // Success CB
                        console.error("Q2 S");
                    },
                    function(tx, errObject) { // Error CB
                        console.error("Q2 E");
                    });
            },

            // Tx error callback
            function(err, err2) { console.error("TX ERROR"); return true; }
        );

Поэтому я изменил имя таблицы во второй транзакции, чтобы сделать транзакцию неудачной, но вот результат (в Chrome):

> Q1 S
> Q2 E

Проблема 1: я не получаю сообщения об ошибке "TX ERROR", как ожидалось.

Проблема 2: Вопрос 1 сохраняется и не может быть восстановлен.


person kaYko    schedule 08.12.2014    source источник


Ответы (1)


Значит, я делал это неправильно. Оператор return true должен быть указан в обратном вызове ошибки запроса, а не в !

person kaYko    schedule 08.12.2014