我目前正在使用WebSql的异步API。鉴于此代码:是否可以在同一个事务中嵌套句子?
db.transaction(
function (tx) {
tx.executeSql("SELECT * FROM table",
[],
function(t, resultSet){ //Anonimous function implementing SQLStatementCallback
t.executeSql(...); //#1
}
);
},
function (err) {
console.error("Error in transaction");
},
function(){
console.log("Transaction complete"); //#2
}
);
我在规范中找不到它。 executeSql
中的第三个参数是实现SQLStatementCallback
的功能。这个接口中的第一个参数是另一个SQLTransaction
(在我的代码中命名为t)。是否有可能使用这个事务对象继续执行句子?特别是:
- 是
t
是否与tx
相同? - 我可以使用
t
来执行另一个SQL语句,并且在这种情况下#1保证在#2之前运行吗?
那么API如何知道我何时完成了事务?例如,我可以在#1的回调中再次调用'executeSql',然后再次调用第二个操作调用'executeSql'。事实上,我可以在'executeSql'回调中执行其他操作,例如连接到WS,这将延迟事务的SQL组件。我甚至可以在“transaction”块中多次调用'executeSql',每个块都有其回调函数。 – 2013-03-04 08:25:25
>> API如何知道我何时完成交易?事务在不被主动使用时被提交。 – 2013-03-07 06:56:38