Javascript 我试图了解这种情况是否会引发内存泄漏
我有一个从DB获取数据的简单代码。我正在使用helper方法进行分页,我想知道这种情况是否会导致内存泄漏:Javascript 我试图了解这种情况是否会引发内存泄漏,javascript,memory-leaks,Javascript,Memory Leaks,我有一个从DB获取数据的简单代码。我正在使用helper方法进行分页,我想知道这种情况是否会导致内存泄漏: function getData(page) { if (!page) { page = 1; } return db.getData().then(function (data) { return formatResults(data, page); }); } function formatResults(data, page) { r
function getData(page) {
if (!page) { page = 1; }
return db.getData().then(function (data) {
return formatResults(data, page);
});
}
function formatResults(data, page) {
return {
data: data, // 50MB Data for each page
nextPage: getData.bind(null, page + 1)
};
}
getData().then(function (result) { // RUN RECURSIVELY 100,000 TIMES
console.log(result.data);
result.nextPage().then(...); // MEMOERY LEAK IN formatResults???
});
为什么你怀疑它可能?因为nextPage生活在formatResults中,所以我关心它是否永远存在(假设我递归运行nextPage()数百万次…)它不是真正的递归,因为它使用的是承诺。因此,在执行下一个调用之前,每个函数都会退出并清除其本地数据。最终它将到达最后一页,然后所有函数退出。