gpt4 book ai didi

node.js - 在套接字发出的数据中引入延迟

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:04 27 4
gpt4 key购买 nike

我已经建立了套接字连接,其中前端有一个图表。该图表根据用户提供的输入进行更新。在后端,我正在发出数据(发送到前端的数据数组)。是否可以在套接字发出的数组的每个值之间引入延迟?

我尝试将代码放入 setInterval 函数中,但很快我就意识到自己的愚蠢。我不知道如何继续。

io.sockets.on('connection', (socket) => {
console.log(`new connection id: ${socket.id}`);
socket.emit('test event', 'data is getting generated');
//sendData(socket);
socket.on('test', data => {
console.log("DATA ", data);
let start = data.start_val;
const arr = [];
while (start <= data.end_val) {
arr.push(start);
start = start + data.interval;
}
model.data.create({
startvalue: data.start_val,
endvalue: data.end_val,
difference: data.interval

});
socket.emit('response', arr);
});

})

我将 3 个值发送到后端 Start_val、end_val 和差值。这些值用于生成数据。例如 - 输入:- start_val = 10,end_val = 30,difference = 30。则发送回的数组为[10,20,30]。现在我想了解是否可以在数组的每个值之间提供 1 秒的时间延迟。即 10 应在第一秒到达,20 应在第二秒到达,依此类推。非常感谢任何帮助。

最佳答案

如何循环数据并使用 setTimeout 函数来增加每次迭代的延迟:

for (let x = 0; x < arr.length; x++) {
setTimeout(()=>{
socket.emit('response', [arr[x]]);
}, 1000 * (x+1));
}

您一次只能发回 1 个号码。在这里,我们将发送回 [10]...因此在客户端上,您需要处理如何接收数据并将其推送到用于图形的数组中,或者在发送数据后读取该数据。

另一种可能性是在此应用程序的客户端引入这种延迟。

关于node.js - 在套接字发出的数据中引入延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56634194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com