我想要一些在另一个回调函数内部的结果
I want some result that is inside of a callback function inside of another one
我从javascript开始。我认为这个问题只与javascript有关,但它涉及PhoneGap和WebSQL。我的问题和我想做的事情在代码注释中。
var MyDatabase = function() {
if (!(this instanceof MyDatabase)) return new MyDatabase();
}
MyDatabase.prototype = {
db: window.openDatabase("my_database", "1.0", "My Database", 5000000),
getAllPosts: function(callback) {
var query = "SELECT * FROM posts",
that = this,
result;
function onSuccess (transaction, resultSet) {
console.log('get posts with success.');
result = resultSet.rows; // I think this should work, but it doesn't
if (typeof callback === 'function') callback.call(that, result);
}
function onError(transaction, error) {
console.log(error);
}
this.db.transaction(function(t){ t.executeSql(query, [], onSuccess, onError) });
return result; // result still undefined
}
};
// Imagine that the posts table are created and has some rows seted.
var database = MyDatabase();
// The callback works fine.
database.getAllPosts(function(result) {
// do something with result.
console.log(result);
// SQLResultSetRowList
});
// But in some cases I want to do this and I get result as undefined =(
var result = database.getAllPosts();
有什么想法吗?
谢谢。
你必须使用回调。您无法在代码中返回result
,因为尚未调用onSuccess
,因此不会设置result
。
相关文章:
- 调用函数内部的函数
- javascript函数内部的代码用逗号而不是分号分隔
- javascript无法重新定义函数内部的全局对象
- 如何从函数内部的这个变量中获取值
- appendChild在函数外部工作,但在函数内部不工作
- 在jquery函数内部设置来自jquery函数的var;t运行
- 一个'var'在函数内部声明
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 函数内部未定义的输入值
- 在Meteor中如何将数据从函数内部复制到其他模板
- 如果在构造函数内部为else,则Javascript是可选的
- 我对“;返回true"嵌套函数内部;t工作
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- javascript,将参数传递给函数内部的闭包中的回调
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- 访问函数内部的Polymer方法
- 更改函数内部的全局变量而不调用它
- 如何在函数内部为jquery工具提示调用不同的var字符串
- 构造函数内部的事件处理