4
我写了下面function
检查我的HTML5 openDatabase
表被填充或空:返回从嵌套函数的值到它的父不使用回调
var that = this;
that.db = openDatabase('dbname', '1.0', "description", 1024 * 1024);
that.tableFilled = function(tableName) {
that.db.transaction(function (tx) {
tx.executeSql('SELECT * FROM ' + tableName, [],
function success(c, results) {
return (results.rows.length > 0 ? true : false);
},
function fail() {
console.log('FAiL');
}
);
});
};
我想return
的true
或false
值到tableFilled()
。其实that.tableFilled('tableName')
返回undefined
。
我想实现在年底是:
if (that.tableFilled('tableName')){
// ...
}
有没有一种方法可以让我return
的true
或false
值父功能tableFilled()
不使用回调?
问题:为什么你不希望使用CB? Javascript提供了返回函数来编写异步代码的功能,为什么不使用它呢? – Christoph 2012-02-10 21:08:18
简短回答:**没有**,因为它是异步的。我会在答案中详细阐述一下。 – Halcyon 2012-02-10 21:08:44
尽管对于这种用例来说,匿名函数(对于潜在的异步调用)看起来有点毫无意义,因为除非得到答案,否则您无法进一步深究。 – twilson 2012-02-10 21:10:09