Javascript 如何删除IndexedDB中的所有记录
我有一个IndexedDB,在那里我存储所有购物车订单。结账时,购物车需要清空。我试图循环浏览每个订单并删除,但不知何故,只有第一个订单被删除。这是我的密码:Javascript 如何删除IndexedDB中的所有记录,javascript,indexeddb,Javascript,Indexeddb,我有一个IndexedDB,在那里我存储所有购物车订单。结账时,购物车需要清空。我试图循环浏览每个订单并删除,但不知何故,只有第一个订单被删除。这是我的密码: const clear_cart = () => { let objectCart = db.transaction('cart').objectStore('cart'); objectCart.openCursor().onsuccess = function(e){ let cursor =
const clear_cart = () => {
let objectCart = db.transaction('cart').objectStore('cart');
objectCart.openCursor().onsuccess = function(e){
let cursor = e.target.result;
if(cursor){
let cartId = cursor.value.id;
let transaction = db.transaction(['cart'], 'readwrite');
let objectToDelete = transaction.objectStore('cart');
let request = objectCart.objectToDelete(cartId);
transaction.oncomplete = () => {
console.log(`cart ${cartId} is deleted!`);
}
cursor.continue();
}
}
}
我会尝试使用objectStore的
const clear_cart==>{
让objectCart=db.transaction['cart','readwrite'。objectStore'cart';
objectCart.clear.onsuccess=functione{
console.log`购物车已清除!`;
}
}
我对dmigo的建议做了一些调整,这解决了我的问题。这是密码
const clear_cart = () => {
let objectCart = db.transaction('cart').objectStore('cart');
let transaction = db.transaction(['cart'], 'readwrite');
let objectToDelete = transaction.objectStore('cart');
objectToDelete.clear().onsuccess = function(e){
console.log(`the cart is clear!`);
}
}
我得到一个错误,数据库是只读的。我对您的代码做了一些调整,即将购物车设置为读写,然后它就工作了:-