表达js setInterval route 1和clearInterval route 2

时间:2017-06-30 13:20:26

标签: node.js express setinterval

我有一个带快递js的节点js服务器。 在一条路线上,我使用setInterval开始一个间隔。 现在我想在用户导航到第二条路线时停止间隔。

E.g。

router.get('/startInterval', function() {
    var timer = setInterval(function() {
        console.log('Interval is running');
    }, 1000);
});

router.get('/stopInterval', function() {
    // Stop the interval startet before
    // clearInterval(); <--- How i get the timer object?
});

我该怎么做? 如果我将计时器声明为全局变量,该怎么办? 第二个用户是否能够在不同的浏览器中停止第一个用户启动的计时器?

1 个答案:

答案 0 :(得分:0)

您需要在外部范围内定义计时器

var timer;

router.get('/startInterval', function() {
    timer = setInterval(function() {
        console.log('Interval is running');
    }, 1000);
});

router.get('/stopInterval', function() {
    clearInterval(timer);
});

顺便说一下,任何进入/stopInterval路由的用户都会停止全局计时器(所有用户都有一个计时器)。

如果你想为每个不同的用户设置不同的计时器,你需要更复杂的代码(使用session,cookie,...)。