我有一个我这样设置的数组:let application = JSON.parse(localStorage.getItem(Applications.Offline) || '[]');然后我抓取数组中的第一个对象:let app = application[0];在此之后,我运行 axios 调用:Axios.post('API here') .then(response => { if(response.data.ErrorMessage === 'OK'){ application.shift(); } })现在,这一切都在一个函数中,每 5 分钟用 setInterval 运行一次。第一次运行时,它工作正常。我有 console.logged 应用程序,它从 7 个对象减少到 6 个。但之后每隔一段时间,它就保持在 6 个。如果.shift()有效,它不应该循环到数组中的 0 个对象吗?无论如何,这就是我想要它做的。
1 回答
Qyouu
TA贡献1786条经验 获得超11个赞
您只是在移动application数组,该数组是与本地存储中完全不同的变量。JSON.parse执行时创建一个新的引用。要解决此问题,您需要在处理对象后将移位的变量设置回本地存储。
if (response.data.ErrorMessage === 'OK') {
application.shift();
localStorage.setItem(JSON.stringify(Applications.Offline, application));
}
添加回答
举报
0/150
提交
取消