目前正在使用Websockets和node.js处理项目。目前我正在生成一些随机数,并每隔半秒发送给客户一次。
var array = [];
wss.on("connection", function (ws) {
setInterval(function () {
var data = Math.floor(Math.random() * 100) + 1; //create a random whole number between 1-100
var msg = JSON.stringify(data); //convert data to JSON string
ws.send(msg); //send JSON string to client
}, 500);
})
但是现在我想每分钟将该分钟的值存储到数据库中。我不想在wss.on
函数中嵌入我的插入mongodb,因为它看起来很混乱。我有没有办法让data
的价值超出wss.on
的范围并进入array
?
我尝试使用array.push()
,但显然它不起作用。非常感谢任何有关此事项所需阅读的帮助和链接。
答案 0 :(得分:1)
将我的评论写成答案,因为它似乎正是您所寻找的。 p>
你的想法是什么"凌乱"是正确的方法。嵌套它。如果你真的想要,可以将插入放在一个单独的函数中,并从间隔内部调用它。异步时序仅在异步回调中有效,因此您可以在其中执行工作。您可以将数据放入更高范围的数组并将其存储在那里,但是只有在setInterval()
回调中才知道何时将值添加到数组中的时间。