回调调用父函数最终崩溃应用程序

时间:2018-03-09 16:23:28

标签: javascript

我有一些Javascript,每天都在日落时执行。由于日落时间每天都在变化,因此我会在执行当前日落计时器后为明天设置一个新计时器。

scheduleSunTimer(timer) {

    let _timer = timer;

    let time = getSunset(new Date(), config.latitude, config.longitude);

    schedule.scheduleJob(time, () => {
        this.console.log('Timer actived');

        // Reschedule for next day
        this.scheduleSunTimer(_timer);
    });

}

我使用https://github.com/node-schedule/node-schedule/

中的node-schedule

此代码有效,但一周后我的应用程序挂起。看起来schedule.scheduleJob调用scheduleSunTimer的回调再次创建了一些永不停止的嵌套调用堆栈。这可能会导致内存泄漏,导致我的应用程序崩溃。

我想知道是否有人知道如何避免调用堆栈增长,或者可能知道更好的解决方案/最佳实践。

0 个答案:

没有答案