在javascript中一起运行随机选择和计时器功能

时间:2017-04-27 17:37:09

标签: javascript arrays node.js bots

我目前正在开发一个带有javascript,node和twit包的twitter机器人。我已经设置了一个计时器和一个随机选择功能,所以我的目标是每60秒发布一次机器人,并从我的数组中选择一个随机句子。当我单独测试两个位(定时器或随机函数)时,它们可以正常工作,但出于某种原因,我无法使它们协同工作。 我试图为getRandomSentence()函数声明一个变量(如var tweet = getRandomSentence(tweet))但是我会得到这个错误返回句子[index];                         ^

TypeError:无法读取属性' NaN'未定义的

像我上传的代码现在已经上传但计时器似乎无法正常工作。



// timer
setInterval(getRandomSentence, 1000*60)

// random
  var sentences = [

  'sentence1',

  'sentence2',

  'sentence3.',

  'sentence4',

  'sentence5',

  'sentence6'

    ],
    maxSentences = sentences.length;

    function getRandomSentence() {
        var index = Math.floor(Math.random() * (maxSentences - 1));
        return sentences[index];
    }

//  tweets
//
T.post('statuses/update', { status: getRandomSentence()}, tweeted);

function tweeted (err, data, response) {
if (err) {
 console.log(err);
}
else {
 console.log("It works.");
 }
}




如果有人能在这里帮助我,我真的很感激!我还是一个绝对的新手。

1 个答案:

答案 0 :(得分:0)

您已对代码进行了一些更改。这适用于控制台记录随机句子每60秒发推一次:

var sentences = [
    'sentence1',
    'sentence2',
    'sentence3',
    'sentence4',
    'sentence5',
    'sentence6'
];
var maxSentences = sentences.length;

var sentenceToTweet = '';

function getRandomSentence() {
    var index = Math.floor(Math.random() * (maxSentences - 1));

    sentenceToTweet = sentences[index];

    console.log(sentenceToTweet);

    setTimeout(getRandomSentence, 1000 * 60);
}

getRandomSentence();