WebSql 事务回退不起作用

WebSql Transaction fall back not working

本文关键字:不起作用 回退 事务 WebSql      更新时间:2023-09-26

我正在使用具有多个查询的事务。我想要的是事务在查询失败时回退。我读到我必须在事务的错误回调中返回 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错误"

问题 2:Q1 持久且未还原。

所以我

做错了。必须在查询的错误回调中指定返回 true 语句,而不是 tx 的 !