【问题标题】:Running a random select and timer function together in javascript在javascript中一起运行随机选择和计时器功能
【发布时间】:2017-04-28 04:46:18
【问题描述】:

我目前正在开发一个带有 javascript、node 和 twit 包的 twitter 机器人。我已经设置了一个计时器和一个随机选择功能,所以我的目标是机器人每 60 秒发一次推文,并从我的数组中选择一个随机句子。当我单独测试这两个位(计时器或随机函数)时,它们可以工作,但由于某种原因,我不能让它们一起工作。 我试图为 getRandomSentence() 函数声明一个变量(如 var tweet = getRandomSentence(tweet)),但随后我会收到此错误 return sentence[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.");
 }
}

如果有人可以在这里帮助我,我将不胜感激!我仍然是一个绝对的新手。

【问题讨论】:

  • 错误很明显 - T is not defined
  • @JamesHill 我认为他们只是没有包含 T 的代码。句子数组后是否有语法错误?逗号在那里做什么?
  • 他正在声明一个数组和 int 内联。没关系。不是最易读的方式,但这不是问题。
  • @Aaron 当然哈哈。压痕把我扔了
  • @JamesHill T 不是问题,问题是 setInterval 和我的 getRandomSentence 函数不能一起工作,我不知道为什么。

标签: javascript arrays node.js bots


【解决方案1】:

您好,我们对代码进行了一些更改。这可以控制台记录一个随机句子以每 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();

【讨论】:

  • 感谢您的输入,这听起来类似于我设置 var tweet = getRandomSentence(tweet); 的方法它没有抛出错误,但不幸的是它也没有使计时器工作。
  • 如果你希望它每 60 秒发一次推文,那么你也必须在间隔函数内发布你的推文。
  • 我已更新我的答案以选择随机句子并每 60 秒将其记录到控制台。
猜你喜欢
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多