如何在执行命令后在Node.js中添加Sleep?

时间:2017-02-03 07:15:26

标签: javascript node.js

基本上这是Twitch.tv的聊天机器人。目前,当他们说" Hello"时,它会回复聊天中的某个人。我想在机器人回复问候后添加一个Sleep 2秒钟,所以它不会淹没聊天。我已经尝试过setTimeout / setInterval但是那些在它回复此人之前放了2秒的延迟。欢呼声。

var tmi = require('tmi.js');

process.setMaxListeners(0);

var options = {
options: {
    debug: true
},
connection: {
    cluster: "aws",
    reconnect: true
},
identity: {
    username: "",
    password: ""
},
channels: [""]
};

var client = new tmi.client(options);
client.connect();

client.on('chat', function(channel, user, message, self) {
if(message === "Hello") {
    client.action("", "@" + user['display-name'] + ", Welcome!");
}});

1 个答案:

答案 0 :(得分:0)

var canSendMessage = true;
client.on('chat', function(channel, user, message, self) {
if(message === "Hello" && canSendMessage ) {
canSendMessage = false;
client.action("", "@" + user['display-name'] + ", Welcome!");
setTimeout(function(){ canSendMessage = true }, 2000);
}});

你可以试试这个(未经测试)。如果在2000ms(2s)之后没有重置,变量canSendMessage将阻止机器人写入。