Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.io不使用setInterval功能的倒计时计时器_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript Socket.io不使用setInterval功能的倒计时计时器

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

正如标题所说,我正在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 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分钟后运行。为什么会发生这种情况?