https://www.w3.org/TR/webdatabase/#sqlstatementerrorcallback
请参见此处,sql语句错误回调定义了返回类型boolean:
[Callback=FunctionOnly, NoInterfaceObject]
interface SQLStatementErrorCallback {
boolean handleEvent(in SQLTransaction transaction, in SQLError error);
};
反对
[Callback=FunctionOnly, NoInterfaceObject]
interface SQLTransactionErrorCallback {
void handleEvent(in SQLError error);
};
在任何地方都没有指定回调应该返回什么,以及为什么它是布尔值。
许多绑定,例如一个飞镖(https://api.dartlang.org/stable/2.4.0/dart-web_sql/SqlStatementErrorCallback.html)甚至将其定义为void(导致伪造?)
https://github.com/xpbrew/cordova-sqlite-storage/blob/dev/www/SQLitePlugin.js#L401如果不返回false,甚至会引发错误。
我确实意识到这是一个过时的规范,但是cordova选择此处符合规范,因此我需要确定如何解释它。
为什么语句错误回调为布尔值,而例如事务错误回调为void?在哪种情况下我应该实际返回什么?
答案 0 :(得分:0)
我在这里找到了一个可能的答案:https://docs.kony.com
SQLStatementErrorCallback
返回一个布尔值。
true
- 结束交易的执行。如果没有指定回调函数作为参数,则返回 true
。
重要提示:返回 true
时,事务将回滚。false
- 继续执行交易。这样您就可以决定是要继续还是回滚整个事务。
至于 SQLTransactionErrorCallback
- 返回值没有可能的用途。