我目前正在使用IndexDB,我需要从中删除对象列表。 我有一个删除一个对象的方法,它运行得很好。 这个方法的重要部分是这个片段:
openDatabasePromise.then(function (db) {
var tx = db.transaction(objectStoreModel.name, dbModel.accessTypes.readwrite);
tx.onabort = function () {
$log.error("Error deleting object in local indexeddb: ", tx.error);
deferred.reject();
};
var objectStore = tx.objectStore(objectStoreModel.name);
var deleteRequest = objectStore.delete(objectId);
deleteRequest.onsuccess = function () {
deferred.resolve();
};
deleteRequest.onerror = function (errorMessage) {
$log.error("Error deleting object in local indexeddb: ", deleteRequest.error);
deferred.reject();
};
}
但是,在循环中执行此函数会导致没有对象被删除,但不会显示错误。
对某人来说这是一个已知的错误吗? 可能是错误,我试图立即发出许多承诺吗?
答案 0 :(得分:0)
你的提示解决了这个问题,但主要是因为它迫使我重新实现了代码剪切。
这有助于我找到实际的错误,objectStore.delete(objectId)
期望objectId
是一个数字,但在我的情况下它是一个字符串。
非常感谢!