我正在使用reactjs和axios启动一个应用程序。它获取一些相当大的JSON数据,几分钟后,Chromium停止写入“在潜在内存不足泄漏之前暂停”。看起来所有提取的数据都存储在某个地方,但我不明白如何存储。代码看起来像
let result = axios({...});
result = result.then((response) => {
... read status and headers, pass them to other functions
return response;
}, (error) => {
... never executed similar processing
return response; // error processing done
});
if (method === "get") {
result = result.then((response) => {
... some header processing
}
}
return null; // currently, the result is no more needed
没有一个地方会泄露响应数据。。。我还不需要它们,因为我目前只关心获取逻辑。承诺不出方法不做
response
和
response.data
. 但2 GB内存快照显示获取的JSON数据:
在匿名模式下也会发生这种情况,其中没有运行扩展。最可疑的一行是“未决活动”。我不理解其中的很多东西,例如,为什么它会列在下面的编译代码中(它只是数据,带有不可执行前缀的JSON,我从未接触过它)。
我从CreateReact应用程序开始,安装了以下程序
"dependencies": {
"axios": "^0.18.0",
"flow-bin": "^0.75.0",
"json-stable-stringify": "^1.0.1",
"react": "^16.4.1",
"react-bootstrap": "^0.32.1",
"react-burger-menu": "^2.5.2",
"react-dom": "^16.4.1",
"react-scripts": "1.1.4",
"react-select": "^1.2.1",
"react-sidemenu": "0.0.14",
"serve": "^9.1.0"
},
写了这一切之后,我发现问题确实存在
当chrome开发工具关闭时发生,因此这并不重要。然而,我有一个angularjs应用程序获取相同的数据,没有这样的问题。
有人知道是什么原因导致了泄漏,我如何才能消除它?