所以我正在尝试为 Discord 制作一个实时控制台,这样我就可以在离开计算机时看到错误。我试图做到这一点,以便每次监听器接收数据时,它都会清除以前的超时并创建一个新超时,这样就不会因为x监听器被调用多次而x发送相同的东西。现在我遇到了问题。我可以清除超时但不能清除其中的事件。
child.stdout.on("data", (data) => {
stdout = stdout + data.toString();
clearTimeout(timeout);
timeout = setTimeout(() => {
message.channel.send([stdout], {
code: true,
split: true
});
})
});
所以这段代码最终仍然发送了x很多次。我将如何取消内部事件来解决这个问题?
编辑:我的愚蠢错误。我在清理代码时不小心删除了超时。下面的代码解决了一切。
child.stdout.on("data", (data) => {
stdout = stdout + data.toString();
clearTimeout(timeout);
timeout = setTimeout(() => {
message.channel.send([stdout], {
code: true,
split: true
});
}, 3000)
});
九州编程
相关分类