2017-09-15 15 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用です。ですから、 'var'の代わりに' const'を使用してください。 – 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); 
} 
}); 
関連する問題