현재 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라고 함)입니다. 이 트랜잭션 객체를 사용하여 문장을 계속 실행할 수 있습니까? 특히 :
tx
과 동일합니까?t
을 사용하여 다른 SQL 문장을 실행할 수 있습니까?이 경우 # 2 이전에 # 1이 (가) 실행되도록 보장됩니까?
그런 다음 API로 트랜잭션 완료 시점을 어떻게 알 수 있습니까? 예를 들어, # 1의 콜백에서'executeSql'을 다시 호출 한 다음 두 번째 작업의 콜백에서'executeSql'을 다시 호출 할 수 있습니다. 사실, 나는 WS에 연결하는 것과 같은 executeSql 콜백에서 다른 작업을 수행 할 수 있는데, 이것은 트랜잭션의 SQL 컴포넌트를 지연시킬 것이다. "transaction"블록에서 여러 번 executeSql을 호출 할 수도 있습니다. 각 블록은 콜백을 가지고 있습니다. –
>> API로 트랜잭션 완료 시점을 어떻게 알 수 있습니까? 트랜잭션은 사용되지 않을 때 커밋됩니다. –