从IndexDB中删除多个项目

时间:2015-11-20 16:51:26

标签: javascript angularjs

我目前正在使用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();
      };
}

但是,在循环中执行此函数会导致没有对象被删除,但不会显示错误。

对某人来说这是一个已知的错误吗? 可能是错误,我试图立即发出许多承诺吗?

1 个答案:

答案 0 :(得分:0)

你的提示解决了这个问题,但主要是因为它迫使我重新实现了代码剪切。 这有助于我找到实际的错误,objectStore.delete(objectId)期望objectId是一个数字,但在我的情况下它是一个字符串。

非常感谢!