在角度服务中考虑这种方法:
select : function(table) {
window.sqlitePlugin.openDatabase({
name: 'smartLab.db',
location: 'default'
}, function success(db) {
var defer = window.Q.defer();
console.dir(defer);
db.executeSql('SELECT * FROM ' + table, [], function success(rows) {
var resp = [];
for(var i = 0; i < rows.rows.length; i++) {
resp.push(rows.rows.item(i));
}
defer.resolve(resp);
}, defer.reject)
}, function error(err) {
})
}
我通过以下方式从另一个服务调用它:
DatabaseService.select(TBL_NAME).then(function(rows) {
// logic goes here
});
我得到的错误是:
Uncaught TypeError: Cannot read property 'then' of undefined
我以前从未使用过 Q,但对 Promise 很熟悉,有什么东西会跳出本质上是错误的吗?很明显有什么...