cee*_*yoz 6 javascript sqlite webkit
如何才能返回以下JavaScript row以便我可以在事务外访问它?所有Apple的示例代码似乎都在事务中将HTML写入浏览器,而不是将数据传递回调用函数.
沿着:
function getData() {
db.transaction(function(tx) {
tx.executeSql("SELECT id FROM table LIMIT 1", [], function(tx, result) {
row = result.rows.item(0);
}, function(tx, error) {
});
});
return row;
}
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?Webkit存储API可以设置为同步而不是异步执行吗?
小智 5
我意识到这是一个非常古老的问题,但我在搜索如何处理JavaScript异步SQLite调用时发现了它.问题和我的一样,我找到了一个更好的答案(使用闭包扩展所选答案)
我的getData函数版本如下:
function get_option (option, get_option_callback){
if (db === null){
open_database();
}
db.transaction(function (tx) {
tx.executeSql("SELECT rowid,* FROM app_settings WHERE option = ? ", [option],
function(tx, result){
item = result.rows.item(0);
get_option_callback(item.value);
return;
}
}, sql_err);
});
}
Run Code Online (Sandbox Code Playgroud)
然后调用我将使用的方法:
get_option("option name", function(val){
// set the html element value here with val
// or do whatever
$('input[name="some_input"]').val(val);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12456 次 |
| 最近记录: |