Tengo una variedad de elementos en el almacenamiento local y quiero enviarlos todos a la vez a mi API. El problema es que cuando los envío todos, la API me dice que recibió todas las solicitudes, pero este ciclo no las elimina del almacenamiento local. no obtuve respuesta o algo
let local_items = localStorage.getItem("items") local_items = JSON.parse(local_items) loadingToast("Syncing items") for (let i = 0; i < local_items.length; i++) { axios.post('/items', { item: local_items[i], shop: '1', employee: '1' }, config).then((response) => { if (response.status === 200) { local_items.splice(i, 1) //it counts down 2 or 3 times then gets stuck on a number alert("Item synced" + local_items.length) localStorage.setItem("items", JSON.stringify(local_items)) } else { dismissToast() errorToast("Error syncing items") localStorage.setItem("items", JSON.stringify(local_items)) return } }).catch((error) => { dismissToast() errorToast("Error syncing items") localStorage.setItem("items", JSON.stringify(local_items)) return }) } }la alerta aparece para todos los artículos, pero la cuenta regresiva se atasca.
local_items.splice(i, 1) no es una buena manera de eliminar los elementos, solo funcionará para la primera mitad de los elementos y no funcionará para el resto.
Pruebe local_items.shift() en su lugar.