Javascript 我试图了解这种情况是否会引发内存泄漏

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

我有一个从DB获取数据的简单代码。我正在使用helper方法进行分页,我想知道这种情况是否会导致内存泄漏:

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()数百万次…)它不是真正的递归,因为它使用的是承诺。因此,在执行下一个调用之前,每个函数都会退出并清除其本地数据。最终它将到达最后一页,然后所有函数退出。