猿问

array.shift() 在 axios 响应中不起作用?

我有一个我这样设置的数组:


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 个对象吗?无论如何,这就是我想要它做的。


凤凰求蛊
浏览 145回答 1
1回答

Qyouu

您只是在移动application数组,该数组是与本地存储中完全不同的变量。JSON.parse执行时创建一个新的引用。要解决此问题,您需要在处理对象后将移位的变量设置回本地存储。if (response.data.ErrorMessage === 'OK') {    application.shift();    localStorage.setItem(JSON.stringify(Applications.Offline, application));}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答