如何清除node.js中的超时
|
嗨,我们正在开发node.js,socket.io和redis中的应用程序。
我们有这个程序:
exports.processRequest = function (request,result) {
var self = this;
var timerknock;
switch(request._command) {
case \'some command\': // user login with username
// some statement
timerknock=setTimeout(function() {
//some statemetn
},20*1000);
case \'other command \':
// some statement
clearTimeout(timerknock);
}
};
但是,当它取消计时器时,它在执行其他命令时并没有被取消,我该怎么做才能取消计时器?
没有找到相关结果
已邀请:
1 个回复
篮肥炼皖
语句,这会引起问题(当您尝试清除计时器时,它将创建一个新计时器并清除它,但旧计时器仍将运行)。也许这是一个错字。 您的主要问题是您将计时器“参考”存储在本地变量中。这必须是封闭的或全局的,否则执行函数以清除变量时,,2ѭ将丢失其值,并且将尝试和and3ѭ,这当然是没有用的。我建议一个简单的关闭:
请注意,这也是一种非常简单的方法,如果在当前定时器执行完毕之前设置了定时器,则会丢失对该定时器的引用。尽管您可能尝试使用计时器引用的对象/数组来实现这一点,但是这对您来说可能不是问题。