我目前正在使用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