我新的Javascript和AngularJS,我试图弄清楚这一点。 我做了一个角色服务,执行数据库查询并返回承诺。的Javascript承诺不确定
executeStatement = function(db, sql, values, onsuccess, onerror) {
if (!!db.executeSql) {
return db.executeSql(sql, values || [], onsuccess, onerror);
} else {
return db.transaction(function(tx) {
return tx.executeSql(sql, values, function(ignored, rs) {
return onsuccess(rs);
}, function(ignored, error) {
return onerror(error);
});
});
}
};
this.executeStatement = function(sql, values) {
$ionicPlatform.ready(function() {
return new Promise(function(resolve, reject) {
return executeStatement(myDB, sql, values, resolve, reject);
});
});
}
然后如果我在角度服务模块中这样调用executeStatement。
this.extract = function(callback) {
_DB.executeStatement('SELECT * FROM FRIDGE', []).then(callback);}
不应该在函数完成运行后返回承诺吗? 我越来越不确定:( 一些帮助,将不胜感激
是否'$ ionicPlatform.ready'返回'Promise'? – guest271314
现在我做到了回报承诺,但它看起来像实际的数据库查询获取方式后完成,因此承诺不包含任何DB数据....我应该怎么办? – PowerLove
_“但它看起来像实际的数据库查询完成后的方式,所以Promise不包含任何数据库数据”_哪个数据库查询?不知道你的意思是“之后的方式”?你在表示'返回db.executeSql(SQL,值|| []的onSuccess,onError的)',这是不传递给'onsuccess'或'onerror'?为什么有两个名为'executeStatement'的函数? – guest271314