Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除IndexedDB中的所有记录_Javascript_Indexeddb - Fatal编程技术网

Javascript 如何删除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 =

我有一个IndexedDB,在那里我存储所有购物车订单。结账时,购物车需要清空。我试图循环浏览每个订单并删除,但不知何故,只有第一个订单被删除。这是我的密码:

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!`);
    }
}

我得到一个错误,数据库是只读的。我对您的代码做了一些调整,即将购物车设置为读写,然后它就工作了:-