2015-11-20 84 views
1

我目前正在使用IndexDB,我需要從中刪除一個對象列表。 我有一個方法,刪除一個對象,這工作得很好。 這種方法的重要部分是該片段:刪除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

爲什麼不傳遞一個值的數組來刪除這個函數,而不是每個循環調用一次? – lux

+0

因爲我的使用本地存儲的知識是基礎之前的一個步驟:)我發佈的代碼不是我的,它只是代碼,我打電話。 我懷疑存在的錯誤,但我會嘗試添加刪除數組的類似方法,謝謝 – Urr4

回答

0

你的提示解決了這個問題,但主要是,因爲它迫使我重新實施代碼。 這幫助我找到實際的錯誤,那是objectStore.delete(objectId)預計objectId是一個數字,但它是一個字符串在我的情況。

非常感謝!