Is the DbQ object really necessary? Why not just use $q
Opened this issue · 2 comments
I found the deleteDatabase
method wasn't deleting my database correctly; it was clearing the stores I had contained within it but not deleting the database itself. The approach used is a little puzzling - why does this service make use of a DbQ
wrapper, and why this functionality is needed over the $q
service that comes with angular? Maybe I'm missing something...
original (not working as expected)
deleteDatabase: function () {
return closeDatabase().then(function () {
var defer;
defer = new DbQ();
defer.resolveWith(indexedDB.deleteDatabase(dbName));
return defer.promise;
})["finally"](function () {
return $log.log("$indexedDB: " + dbName + " database deleted.");
});
}
modified (working)
deleteDatabase: function () {
return closeDatabase().then(function() {
var deferred = $q.defer();
indexedDB.deleteDatabase(dbName).then(function (result) {
console.log("$indexedDB: " + dbName + " database deleted.")
deferred.resolve(result);
}).catch(function(error) {
deferred.reject(error);
});
return defer.promise;
});
}
Is it just outdated? I can submit a pull request if you'd like.
Artifact from the original developer. It's probably unnecessary for
deletion. Was necessary for some of the other functions. Please do submit
a PR. Please make sure you modify the coffee source and not the compiled
JS.
On Jun 24, 2015 10:39 PM, "Danny Bullis" notifications@github.com wrote:
I found the deleteDatabase method wasn't deleting my database correctly;
it was clearing the stores I had contained within it but not deleting the
database itself. The approach used is a little puzzling - why does this
service make use of the DbQ wrapper around the $q service built into
angular?original (not working as expected)
deleteDatabase: function () {
return closeDatabase().then(function () {
var defer;
defer = new DbQ();
defer.resolveWith(indexedDB.deleteDatabase(dbName));
return defer.promise;
})["finally"](function %28%29 {
return $log.log%28"$indexedDB:);
});
}modified (working)
deleteDatabase: function () {
return closeDatabase().then(function() {
var deferred = $q.defer();indexedDB.deleteDatabase(dbName).then(function (result) { console.log("$indexedDB: " + dbName + " database deleted.") deferred.resolve(result); }).catch(function(error) { deferred.reject(error); }); return defer.promise; });
}
Is it just outdated? I can submit a pull request if you'd like.
—
Reply to this email directly or view it on GitHub
#39.
Please also write a test to ensure that deleteDatabase in the end does do as expected.