2017-09-15 43 views
2

我想在每次發送消息時生成一個不同的字符串。 這工作,但字符串不會改變。每次生成一個隨機字符串

var crypto = require('crypto'); 

function randomValueHex (len) { 
return crypto.randomBytes(Math.ceil(len/2)) 
    .toString('hex') 
    .slice(0,len).toUpperCase(); 
} 

var string = randomValueHex(4)+"-"+randomValueHex(4)+"-"+randomValueHex(4); 

bot.on('message', function(user, userID, channelID, message, event) { 
if (message === "!test") { 
    var interval = setInterval (function(){ 
    bot.sendMessage({ 
     to: channelID, 
     message: string 
    }); 
    }, 1000); 
} 
}); 
+1

這是用於Node.js.所以請使用'const'而不是'var'。 – ideaboxer

回答

3

你應該移動string變量到函數。這種方式每次運行時都會有所不同。

bot.on('message', function(user, userID, channelID, message, event) { 
if (message === "!test") { 
    const interval = setInterval (function(){ 
    const string = randomValueHex(4)+"-"+randomValueHex(4)+"-"+randomValueHex(4); 
    bot.sendMessage({ 
     to: channelID, 
     message: string 
    }); 
    }, 1000); 
} 
});