如何存储 websql .executeSql 结果到一个全局变量中
How to store websql .executeSql results in a global variable?
如何访问
tx.executeSql('select query for a table',[],sucessCB);
function sucessCB(tx, results){ //<--- this results param
console.log(results.row.item(0).name);
}
我尝试了类似的东西
function(){
var tab = [];
tx.executeSql('select query for a table',[],sucessCB);
function sucessCB(tx, results){ //<--- this results param
console.log(results.row.item(0).name);
for(i=0;i<results.length;i++){
tab.push(results.row.item(i))
}
}
console.log(tab); //<--- this returns always null
}
如何在回调函数之外访问变量,或者有没有办法直接将 SQL 结果存储在变量中。有没有办法
在tx.executeSql('another select query',[],function(tx, results, tab ){ // <-- this inside sucessCB
console.log(tab);
});
在所有方案中,变量均为空。有没有另一种方法可以做到这一点。任何建议都会有所帮助,谢谢。
按如下方式使用回调:
var querySql = function(sql, callback) {
tx.executeSql(sql,[],sucessCB);
function sucessCB(tx, results){ //<--- this results param
var tab = [];
for(i=0;i<results.length;i++){
tab.push(results.row.item(i))
}
callback(tab);
}
}
querySql('select query for a table', function(result) {
console.log(result);
}
但是,使用延迟概念可以更好地解决此类问题。
var querySql = function(sql) {
var df = $.Deferred();
tx.executeSql(sql,[],sucessCB, errCB);
function sucessCB(tx, results){ //<--- this results param
var tab = [];
for(i=0;i<results.length;i++){
tab.push(results.row.item(i))
}
df.resolve(tab);
}
function errCB(tx, e) {
df.reject(e);
}
}
querySql('select query for a table').done(function(result) {
console.log(result);
}
相关文章:
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 保留 JQuery Vars 用于另一个函数(全局变量?)
- 要求JS'ing一个没有全局$变量的jQuery插件
- 给我的浏览器一个可通过javascript访问的全局变量
- 使用 grunt 在 javascript 文件中“嵌入”一个全局变量
- HTML元素在JavaScript中表示为一个全局变量,How
- 这是一个全局变量吗?
- CoffeeScript 在 'for v in values' 中创建一个全局变量 'v',导致事件中的错误引用
- 在 Jquery 中为语言切换器分配一个全局变量
- 从函数内部声明一个全局变量
- 在 TypeScript 中使用外部模块声明一个全局变量
- 将全局变量传递给另一个视图主干
- 我是否正在创建一个全局变量
- 为什么我已经定义的全局变量被IE8中的另一个var语句覆盖
- 将 React 模板放在一个全局变量的属性中
- 如何在另一个函数中访问 JavaScript 自定义全局变量
- 如何将值从一个函数传递到另一个具有对象的函数,而无需在 JS 中声明全局变量
- 如何在不声明全局变量的情况下将值从一个函数传递到另一个函数?
- 存储nodejs fs.readfile's产生一个变量并传递给全局变量