【发布时间】:2015-10-31 11:26:43
【问题描述】:
我正在编写一个响应命令的 IRC 聊天机器人。我的问题是对命令有冷却时间。
我的想法是这样的:
setTimeout(function() {
client.on('chat', function (channel,user, message, self) {
if (message === 'command') {
// do stuff
}
});
}, 5000);
每次用户输入聊天时,机器人都会做出反应。然后它会检查用户是否输入了命令,然后它显然会做一些事情。
但我的想法在这里行不通。机器人不断响应命令。我只是希望他在 5 秒前已经说话时不要回答。
我尝试使用计时器和 date.now 之类的东西,但我想如果我定义一个变量,比如
var timer = 100000000000000
该变量将始终具有该值,我无法更改一次,因为它将被重新定义。
http://www.tmijs.org/docs/ 是我用于机器人的库
编辑:
function doStuff(channel, user, message, self) {
// do stuff
};
client.on('chat', function(channel, user, message, self) {
if (message === 'command') {
setTimeout( function() {
client.on('chat', doStuff(channel, user, message,self));
}, 5000);
doStuff(channel, user, message, self);
}
});
【问题讨论】:
标签: javascript node.js timeout