Bal*_*ool 5 javascript function callback web-sql
我用以下代码调用函数db.transaction:
db.transaction(createSheetDB, function(){alert("Sheet creation error!")}, function(){alert("Sheet created!")});
Run Code Online (Sandbox Code Playgroud)
函数createSheetDB是一个回调函数,由db.transaction()隐式调用,它也传递一个参数tx.我已经实现了这样的函数createSheetDB(tx):
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)}
);}
Run Code Online (Sandbox Code Playgroud)
现在问题是sheetName和desc的值仅在调用函数中可用.如何将它们传递给函数createSheetDB(tx)?
您可以使用一种技术来创建一个新的回调来关闭您想要的变量。
\n\nfunction doStuff(callback) {\n var val = 43;\n callback(val);\n}\n\nfunction myCallback(val, anotherVal) {\n alert("val: " + val + "\\nanotherVal: " + anotherVal);\n}\n\n(function() {\n\n var anotherVal = "Whoa!",\n anotherCallback = function(val) {\n return myCallback(val, anotherVal);\n };\n\n doStuff(anotherCallback);\n\n}());\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1755 次 |
| 最近记录: |