javascript - NodeJS setInterval 不起作用

标签 javascript node.js

我正在 socket.iocanvas 中为我的游戏制作一个名为 rooms.js 的模块,并且我有一个函数可以将用户数据作为对象与客户端同步,但是 setInterval 不适用于我的函数 Rooms.Listener(),客户端仅在 使用 setInterval 获取数据 4 次 1ms,但仅一次10ms

代码:

Listener: function() {
    setInterval(function() {
        // send data to client every 1ms
        Rooms.ListUsers();
    }, 1);
},
ListUsers: function() {
    for(var roomID in Rooms.Obj) {
        var room = Rooms.Obj[roomID];
        // send users data to client
        room.users.forEach(function(uid) {
            var socketID = users.getSocketIDbyId(uid);
            var data = Rooms.getUsersInRoomData(roomID);
            fiveSocket.emitClient(socketID, headers.roomUsers, data);
        });
    }
},
getUsersInRoomData: function(roomID) {
    var room = Rooms.Obj[roomID];
    var obj = {};
    room.users.forEach(function(uid) {
        var user = users.Obj[uid];  
        obj[uid] = {
            username: user.username,
            position: user.position,
            figure: user.figure
        };
    });
    return obj;
},

问题出在哪里?谢谢

最佳答案

分别仔细检查您的方法。代码本身应该可以工作,问题可能出在您的内部方法内部。

var Rooms = {
  Listener: function() {
    setInterval(function() {        
      Rooms.ListUsers();
    }, 1000); // change to 1ms if necessary
  },

  ListUsers : function() {   
    document.body.innerHTML += Date.now() + "<br />";
  }
};

Rooms.Listener();

关于javascript - NodeJS setInterval 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34885223/

相关文章:

javascript - jquery 帮助需要 - 仅将数据放在同一 div 下

javascript - 在 React 组件中动态创建元素

node.js - require.resolve 未解决依赖关系

javascript - 为什么 bool 值的解构可以在 JavaScript 中工作?

javascript - 如何将页面重定向到 "example.php"?

javascript - 如何使用 SlideUp 知道是否所有匹配的元素都已隐藏

javascript - 如何使用 jQuery 选择器,获取图像的 src 并将其设置为另一个元素的背景图像?

node.js - 如何完全卸载 npm 安装的所有内容(即如何确保安装了 npm 的全新安装)?

javascript - passport.socket.io 无法修复未找到的 session

Node.js - Socket.io - 问题 "maximum concurrent connections"