0
我想要做的是創建一種存儲服務,其中我使用SQLite數據庫來存儲鍵和值對之後,我可以檢索它們基於密鑰。爲了達到這個目的,我建立了以下代碼:SQLite查詢結果不是從函數返回
.service('StorageService', function($cordovaSQLite, $q) {
if(window.cordova) {
db = $cordovaSQLite.openDB("vouchers.db");
} else {
db = window.openDatabase("vouchers.db", "1.0", "Vouchers db", -1);
}
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS vouchers (key text, value text)");
return {
getItem: function(item) {
var query = "SELECT key, value FROM vouchers WHERE key = ?";
$cordovaSQLite.execute(db,query,[item]).then(function(result) {
console.log(result.rows[0].value);
return result.rows[0].value;
});
},
setItem: function(item, data) {
var query = "INSERT INTO vouchers (key, value) VALUES (?,?)";
return $cordovaSQLite.execute(db, query, [item, data]);
}
};
})
現在,這些東西大部分都很好用。我可以存放物品的分貝甚至檢索和在函數內部記錄它們,你可以在下面一行看到:
console.log(result.rows[0].value);
當我登錄這個我得到的預期值,但是當我回到它和日誌它在我使用此服務的控制器中尚未定義。我的控制器中的代碼如下所示:
var test = StorageService.getItem("testje");
console.log(test);
請注意,沒有控制檯錯誤。只有兩個日誌。一位來自控制器是不確定的,和一個從返回值如預期的服務:
controllers.js:465 undefined
services.js:122 dit is een testje!
我希望誰能告訴到底是怎麼回事錯在這裏。如果有任何信息或代碼可以幫助我離開,請告訴我。