tôi kêu gọi một hàm db.transaction với đoạn mã sau:Chuyển các tham số bổ sung vào chức năng gọi lại WebSQL?
db.transaction(createSheetDB, function(){alert("Sheet creation error!")}, function(){alert("Sheet created!")});
Chức năng createSheetDB là một hàm callback được mặc nhiên được gọi bởi db.transaction() mà cũng vượt qua nó một tham số tx. Tôi đã triển khai hàm createSheetDB (tx) như sau:
function createSheetDB(tx) {
var nextId = getNextId();
tx.executeSql("INSERT INTO SHEET(id, name, desc) VALUES("+nextId+",'"+sheetName+"','"+desc+"')", [],
function(){alert("Sheet row inserted!")},
function(tx, err){alert("Sheet row insertion Error: "+err.message+" "+err.code)}
);}
Bây giờ vấn đề là giá trị của sheetName và desc chỉ có sẵn trong chức năng gọi. Làm cách nào để chuyển chúng vào hàm createSheetDB (tx)?
Có * nhiều * câu hỏi/câu trả lời đối với trường hợp chung (sử dụng một kết thúc mà liên kết với các biến địa phương sau đó gọi hàm callback thực hoặc xác định gọi lại thực chức năng trong cùng phạm vi từ vựng hoặc ..), vì vậy hy vọng trường hợp * tinh tế này sẽ được áp dụng nhiều hơn .. nhưng tôi không sử dụng WebSQL. –
cảm ơn @pst, tôi hiện đang sử dụng cách này để giải quyết vấn đề của mình. –