Javascript Socket.io不使用setInterval功能的倒计时计时器
正如标题所说,我正在Node.js中使用Socket.io构建一个倒计时计时器。但是Javascript Socket.io不使用setInterval功能的倒计时计时器,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,正如标题所说,我正在Node.js中使用Socket.io构建一个倒计时计时器。但是setInterval函数中的Socket.io函数不工作 这里是代码: var app = require('express')(); var http = require('http').Server(app);; var io = require('socket.io')(http); io.on('connection',function(socket){ console.log("a user co
setInterval
函数中的Socket.io函数不工作
这里是代码:
var app = require('express')();
var http = require('http').Server(app);;
var io = require('socket.io')(http);
io.on('connection',function(socket){
console.log("a user connected");
var min = 3;
var sec = 00;
var time = new Object;
function timer()
{
if(sec == 00)
{
min = min-1;
sec = 60;
}
if(min == 0)
{return;}
sec = sec-1;
time = {'min':min,'sec':sec};
console.log("timer working"); //this is working without any problem
socket.emit('time',"time");
console.log("after socket working"); // this also works
}
var starttime = setInterval(timer,1000);
if(min == 0)
{
clearInterval(starttime);
}
客户端:
socket.on('time',function(time){
alert(time);
});
这似乎适得其反,为什么要使用套接字来执行客户端上随时可用的操作?而且,
timer
函数超出了范围,它是在另一个函数中定义的,该函数也恰好是一个事件处理程序,是以后发生的事情。您所说的函数不起作用是什么意思?你有什么错误?它没有运行吗?@PatrickMurphy,刚刚注意到函数在30分钟后运行。为什么会发生这种情况?