HTML5数据库-事务VS executeSql回调顺序

HTML5 Database - transaction VS executeSql callbacks order

本文关键字:executeSql 回调 顺序 VS 事务 数据库 HTML5      更新时间:2023-09-26

谈到HTML5数据库(sqlite),我最近使用了来自transactionexecuteSql函数的成功/错误回调。我发现,对于这两个函数,成功/错误回调的顺序是相反的,例如:

交易

database.transaction(function(tx){
    //--- do something
}, function(){
    //--- error handling
}, function(){
    //--- success handling
});

executeSql

tx.executeSql(sqlStatement, [], successCallback, errorCallback);

也许这不是一件重要的事情,但我想知道这种颠倒的顺序是否有原因。。IMHO,每个函数都有相同的回调顺序会很有用,所以当你学会了如何使用一个函数时,你就知道其他函数是如何工作的!

提前感谢,关于

我在这里指的是[主要的RFC文档]:值得注意的是

此规范不再处于活动维护和Web申请工作组不打算进一步维持这一制度。

尽管如此,还是回到问题上来。这背后的原因可能隐藏在讨论邮件列表的档案中

我可以推断人们通常是如何构建API的。

首先要注意的是,这两个函数的各种回调参数都是可选的,因此您希望将它们从最常用的到最不常用的排序。如果你把它放在相反的顺序,你会强迫人们声明空函数。

因此,在事务中,错误处理比成功处理更重要。事务被"设计"为优雅地失败,这一点非常重要,因为我们期望它们不时失败并处理它们的失败。

相反,查询应该返回其结果,而不会失败太多。然而,当我们取得成功时,这种情况应该经常发生,我们希望处理此类查询的结果,而这是在您使用不是SQLVoidCallback successCallbackSQLStatementCallback callback时。此回调不是为了处理成功,而是为了显式处理语句结果(即处理结果)。

在此处比较transactionexecuteSql声明。