HTML5数据库-事务VS executeSql回调顺序
HTML5 Database - transaction VS executeSql callbacks order
谈到HTML5数据库(sqlite),我最近使用了来自transaction
和executeSql
函数的成功/错误回调。我发现,对于这两个函数,成功/错误回调的顺序是相反的,例如:
交易
database.transaction(function(tx){
//--- do something
}, function(){
//--- error handling
}, function(){
//--- success handling
});
executeSql
tx.executeSql(sqlStatement, [], successCallback, errorCallback);
也许这不是一件重要的事情,但我想知道这种颠倒的顺序是否有原因。。IMHO,每个函数都有相同的回调顺序会很有用,所以当你学会了如何使用一个函数时,你就知道其他函数是如何工作的!
提前感谢,关于
我在这里指的是[主要的RFC文档]:值得注意的是
此规范不再处于活动维护和Web申请工作组不打算进一步维持这一制度。
尽管如此,还是回到问题上来。这背后的原因可能隐藏在讨论邮件列表的档案中
我可以推断人们通常是如何构建API的。
首先要注意的是,这两个函数的各种回调参数都是可选的,因此您希望将它们从最常用的到最不常用的排序。如果你把它放在相反的顺序,你会强迫人们声明空函数。
因此,在事务中,错误处理比成功处理更重要。事务被"设计"为优雅地失败,这一点非常重要,因为我们期望它们不时失败并处理它们的失败。
相反,查询应该返回其结果,而不会失败太多。然而,当我们取得成功时,这种情况应该经常发生,我们希望处理此类查询的结果,而这是在您使用不是SQLVoidCallback successCallback
的SQLStatementCallback callback
时。此回调不是为了处理成功,而是为了显式处理语句结果(即处理结果)。
在此处比较transaction
和executeSql
声明。
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- 如何使用jqueryAJAX从页面中回调多个变量
- jquery Onclick函数带有导致双击的回调排序函数
- Javascript点击事件回调不起作用
- 一旦加载并渲染了角度引导typeahead,就使用回调
- 成功回调永远不会被JSONP请求调用
- 如何让程序员在javascript中实现正确的回调
- HTML5数据库-事务VS executeSql回调顺序