Я использую транзакцию с несколькими запросами. Я бы хотел, чтобы транзакция выполнялась в случае сбоя одного запроса. Я читал, что мне нужно вернуть 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 сохраняется и не может быть восстановлен.